function show_results($dbh, $user_input, $nbr_lignes = 0, $page = 0, $id = 0) { global $nb_per_page; global $base_url; global $caller; global $msg; global $no_display; global $charset; global $niveau_biblio, $modele_id, $serial_id; global $acces_j; if ($niveau_biblio) { $filtre_notice = " and niveau_biblio='{$niveau_biblio}' "; } // on récupére le nombre de lignes qui vont bien if ($user_input == "") { $requete_count = "SELECT COUNT(1) FROM notices "; $requete_count .= $acces_j; $requete_count .= "where notice_id!='" . $no_display . "' {$filtre_notice} "; } else { $aq = new analyse_query(stripslashes($user_input)); if ($aq->error) { error_message($msg["searcher_syntax_error"], sprintf($msg["searcher_syntax_error_desc"], $aq->current_car, $aq->input_html, $aq->error_message)); exit; } $members = $aq->get_query_members("notices", "index_wew", "index_sew", "notice_id"); $isbn_verif = traite_code_isbn(stripslashes($user_input)); $suite_rqt = ""; if (isISBN($isbn_verif)) { if (strlen($isbn_verif) == 13) { $suite_rqt = " code like '" . formatISBN($isbn_verif, 13) . "' or code like '" . addslashes($isbn_verif) . "' "; } else { $suite_rqt = " code like '" . formatISBN($isbn_verif, 10) . "' or code like '" . addslashes($isbn_verif) . "' "; } $requete_count = "select count(1) from notices "; $requete_count .= $acces_j; $requete_count .= "where ( " . $suite_rqt . " ) "; $requete_count .= "and notice_id!='" . $no_display . "' {$filtre_notice}"; } else { $requete_count = "select count(1) from notices "; $requete_count .= $acces_j; $requete_count .= "where (" . $members["where"] . " or code like '" . addslashes($isbn_verif) . "' ) "; $requete_count .= "and notice_id!='" . $no_display . "' {$filtre_notice}"; } } $res = mysql_query($requete_count, $dbh); $nbr_lignes = @mysql_result($res, 0, 0); if (!$page) { $page = 1; } $debut = ($page - 1) * $nb_per_page; if ($nbr_lignes) { // on lance la vraie requête if ($user_input == "") { $requete = "SELECT notice_id, tit1, serie_name, tnvol, code FROM notices "; $requete .= $acces_j; $requete .= "left join series on serie_id=tparent_id "; $requete .= "where notice_id!='" . $no_display . "' {$filtre_notice} ORDER BY index_sew, code LIMIT {$debut},{$nb_per_page} "; } else { $isbn_verif = traite_code_isbn(stripslashes($user_input)); $suite_rqt = ""; if (isISBN($isbn_verif)) { if (strlen($isbn_verif) == 13) { $suite_rqt = " code like '" . formatISBN($isbn_verif, 13) . "' or code like '" . addslashes($isbn_verif) . "' "; } else { $suite_rqt = " code like '" . formatISBN($isbn_verif, 10) . "' or code like '" . addslashes($isbn_verif) . "' "; } $requete = "select notice_id, tit1, serie_name, tnvol, code from notices "; $requete .= $acces_j; $requete .= "left join series on serie_id=tparent_id "; $requete .= "where ( " . $suite_rqt . " ) "; $requete .= "and notice_id!='" . $no_display . "' {$filtre_notice} group by notice_id limit {$debut},{$nb_per_page}"; } else { $requete = "select notice_id, tit1, serie_name, tnvol, code, " . $members["select"] . " as pert from notices "; $requete .= $acces_j; $requete .= "left join series on serie_id=tparent_id where (" . $members["where"] . " or (code like '" . addslashes($isbn_verif) . "' )) "; $requete .= "and notice_id!='" . $no_display . "' {$filtre_notice} group by notice_id order by pert desc, index_sew, code limit {$debut},{$nb_per_page}"; } } $res = @mysql_query($requete, $dbh); while ($notice = mysql_fetch_object($res)) { $notice_entry = ""; if ($notice->serie_name) { $notice_entry .= $notice->serie_name; if ($notice->tnvol) { $notice_entry .= ", " . $notice->tnvol; } } $notice_entry ? $notice_entry .= '. ' . $notice->tit1 : ($notice_entry = $notice->tit1); if ($niveau_biblio) { $location = "./catalog.php?categ=serials&sub=modele&act=copy&modele_id={$modele_id}&serial_id={$serial_id}&new_serial_id={$notice->notice_id}"; $display = new mono_display($notice->notice_id, 0, '', 0, '', '', '', 0, 0, 0, 0, "", 0, false, true); print pmb_bidi("<div class='row'>\n\t\t\t\t\t\t\t\t<div class='left'>\n\t\t\t\t\t\t\t\t\t<a href='#' onclick=\"copier_modele('{$location}')\">" . $display->result . "</a>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class='right'>\n\t\t\t\t\t\t\t\t\t" . htmlentities($notice->code, ENT_QUOTES, $charset) . "\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>"); } else { $display = new mono_display($notice->notice_id, 0, '', 0, '', '', '', 0, 0, 0, 0, "", 0, false, true); print pmb_bidi("<div class='row'>\n\t\t\t\t\t\t\t\t<div class='left'>\n\t\t\t\t\t\t\t\t\t<a href='#' onclick=\"set_parent('{$caller}', '{$notice->notice_id}', '" . htmlentities(addslashes($notice_entry), ENT_QUOTES, $charset) . " ({$notice->code})')\">" . $display->result . "</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class='right'>\n\t\t\t\t\t\t\t\t\t" . htmlentities($notice->code, ENT_QUOTES, $charset) . "\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>"); } } mysql_free_result($res); // constitution des liens $nbepages = ceil($nbr_lignes / $nb_per_page); $suivante = $page + 1; $precedente = $page - 1; } print "<div class='row'> <hr /></div><div align='center'>"; $url_base = $base_url . "&user_input=" . rawurlencode(stripslashes($user_input)); $nav_bar = aff_pagination($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true); print $nav_bar; print "</div>"; }
} else { $erreur_affichage = "<table border='0' cellpadding='1' height='40'><tr><td width='30'><span><img src='./images/info.png' /></span></td>\n\t\t\t\t\t\t\t<td width='100%'><span class='erreur'>{$msg[prets_prolong]}</span></td></tr></table>"; } $ficEmpr = new emprunteur($id_empr, $erreur_affichage, FALSE, 1); $affichage = $ficEmpr->fiche; print pmb_bidi($affichage); } else { // prolongation d'un prêt. exemplaire ou emprunteur inconnu error_message($msg[391], $msg[392], 1, './circ.php'); } } else { include "./circ/pret.inc.php"; } break; case 'pret_express': $pe_isbn = traite_code_isbn(stripslashes($pe_isbn)); $suite_rqt = ""; $requete_idexpl = "select expl_id from exemplaires where expl_cb='" . addslashes($pe_excb) . "'"; $result = pmb_mysql_query($requete_idexpl, $dbh); if (pmb_mysql_num_rows($result) == 0) { if (isISBN($pe_isbn)) { if (strlen($pe_isbn) == 13) { $suite_rqt = " or code='" . formatISBN($pe_isbn, 13) . "' "; } else { $suite_rqt = "or code='" . formatISBN($pe_isbn, 10) . "' "; } } $acreer = 1; if ($pe_isbn) { $requete = "select notice_id from notices where code='" . addslashes($pe_isbn) . "' " . $suite_rqt . " and niveau_biblio='m' and niveau_hierar='0' "; $result = pmb_mysql_query($requete, $dbh);
$rqt_bib_id = mysql_query("select format from z_bib where bib_id='{$znotices_bib_id}'"); while ($ligne_format = mysql_fetch_array($rqt_bib_id)) { $format = $ligne_format["format"]; } $resultat_titre = $ligne["titre"]; $resultat_auteur = $ligne["auteur"]; $resultat_isbd = $ligne["isbd"]; $test_resultat++; $lien = $resultat_titre . " / " . $resultat_auteur; print pmb_bidi(zshow_isbd($resultat_isbd, $lien)); if ($action != "integrerexpl") { if ($source == 'form') { $notice = new z3950_notice('form'); } else { // avant affichage du formulaire : détecter si notice déjà présente pour proposer MAJ $isbn_verif = traite_code_isbn($ligne['isbn']); $suite_rqt = ""; if (isISBN($isbn_verif)) { if (strlen($isbn_verif) == 13) { $suite_rqt = " or code='" . formatISBN($isbn_verif, 13) . "' "; } else { $suite_rqt = "or code='" . formatISBN($isbn_verif, 10) . "' "; } } if ($isbn_verif) { $requete = "SELECT notice_id FROM notices WHERE code='{$isbn_verif}' " . $suite_rqt; $myQuery = mysql_query($requete, $dbh); $temp_nb_notice = mysql_num_rows($myQuery); if ($temp_nb_notice) { $not_id = mysql_result($myQuery, 0, 0); } else {
$requete = "select if(sub_coll_issn is not null and sub_coll_issn!='',concat(sub_coll_name,', ',sub_coll_issn),sub_coll_name) as subcoll,sub_coll_id from sub_collections where if(sub_coll_issn is not null and sub_coll_issn!='',concat(sub_coll_name,', ',sub_coll_issn),sub_coll_name) like '" . addslashes($start) . "%' {$restrict} order by 1 limit 20"; $origine = "SQL"; break; case 'indexint': if ($autexclude) { $restrict = " AND indexint_id not in ({$autexclude}) "; } $requete = "select if(indexint_comment is not null and indexint_comment!='',concat(indexint_name,' : ',indexint_comment),indexint_name) as indexint,indexint_id, concat( indexint_name,' ',indexint_comment) as indexsimple from indexint where if(indexint_comment is not null and indexint_comment!='',concat(indexint_name,' - ',indexint_comment),indexint_name) like '" . addslashes($start) . "%' {$restrict} order by 1 limit 20"; $origine = "SQL"; break; case 'notice': require_once './includes/isbn.inc.php'; if ($autexclude) { $restrict = " AND notice_id not in ({$autexclude}) "; } $requete = "select if(serie_name is not null,if(tnvol is not null,concat(serie_name,', ',tnvol,'. ',tit1),concat(serie_name,'. ',tit1)),tit1), notice_id from notices left join series on serie_id=tparent_id where (index_sew like ' " . addslashes(strip_empty_words($start)) . "%' or TRIM(index_wew) like '" . addslashes($start) . "%' or tit1 like '" . addslashes($start) . "%' or code like '" . traite_code_isbn(addslashes($start)) . "') {$restrict} order by index_serie, tnvol, index_sew , code limit 20 "; $origine = "SQL"; break; case 'serie': if ($autexclude) { $restrict = " AND serie_id not in ({$autexclude}) "; } $requete = "select serie_name,serie_id from series where serie_name like '" . addslashes($start) . "%' {$restrict} order by 1 limit 20"; $origine = "SQL"; break; case 'fonction': // récupération des codes de fonction if (!count($s_func)) { $s_func = new marc_list('function'); } $origine = "TABLEAU";
static function get_notice_id_from_cb($code) { if (!$code) { return 0; } $isbn = traite_code_isbn($code); if (isISBN10($isbn)) { $isbn13 = formatISBN($isbn, 13); $isbn10 = $isbn; } elseif (isISBN13($isbn)) { $isbn10 = formatISBN($isbn, 10); $isbn13 = $isbn; } else { // ce n'est pas un code au format isbn $isbn10 = $code; } $requete = "SELECT notice_id FROM notices WHERE ( code='{$isbn10}' or code='{$isbn13}') and code !='' LIMIT 1 "; if ($result = pmb_mysql_query($requete)) { if (pmb_mysql_num_rows($result)) { $notice = pmb_mysql_fetch_object($result); return $notice->notice_id; } } return 0; }
} else { $requete = "select if(indexint_comment is not null and indexint_comment!='',concat(indexint_name,' - ',indexint_comment),indexint_name) as indexint,indexint_id, concat( indexint_name,' ',indexint_comment) as indexsimple from indexint \n\t\t\twhere if(indexint_comment is not null and indexint_comment!='',concat(indexint_name,' - ',indexint_comment),indexint_name) like '" . addslashes($start) . "%' {$restrict} and num_pclass = '{$thesaurus_classement_defaut}' order by 1 limit 20"; } $origine = "SQL"; break; case 'notice': require_once './includes/isbn.inc.php'; if ($autexclude) { $restrict = " AND notice_id not in ({$autexclude}) "; } $requete = "select if(serie_name is not null,if(tnvol is not null,concat(serie_name,', ',tnvol,'. ',tit1),concat(serie_name,'. ',tit1)),tit1), notice_id from notices left join series on serie_id=tparent_id where (index_sew like ' " . addslashes(strip_empty_words($start)) . "%' or TRIM(index_wew) like '" . addslashes($start) . "%' or tit1 like '" . addslashes($start) . "%' or (code like '" . traite_code_isbn(addslashes($start)) . "'"; if (isISBN(traite_code_isbn($start))) { if (strlen(traite_code_isbn($start)) == 13) { $requete .= " or code like '" . formatISBN(traite_code_isbn($start), 13) . "'"; } else { $requete .= " or code like '" . formatISBN(traite_code_isbn($start), 10) . "'"; } } $requete .= ")) {$restrict} order by index_serie, tnvol, index_sew , code limit 20 "; $origine = "SQL"; break; case 'serie': if ($autexclude) { $restrict = " AND serie_id not in ({$autexclude}) "; } $requete = "select serie_name,serie_id from series where serie_name like '" . addslashes($start) . "%' {$restrict} order by 1 limit 20"; $origine = "SQL"; break; case 'fonction': // récupération des codes de fonction if (!count($s_func)) {
function make_first_search() { global $msg, $dbh; global $elt_query; global $notice_statut_query, $doctype_query; global $nb_per_page, $nb_per_page_select; global $results_show_all; if (!$nb_per_page) { $nb_per_page = $nb_per_page_select; } $restrict = "niveau_biblio='m' "; if ($notice_statut_query != '-1') { $restrict .= "and statut='" . $notice_statut_query . "' "; } if ($doctype_query != '-1') { $restrict .= "and typdoc='" . $doctype_query . "' "; } $suite_rqt = "or code='" . $elt_query . "' "; $isbn_verif = traite_code_isbn(stripslashes($elt_query)); if (isISBN($isbn_verif)) { $suite_rqt .= "or code='" . formatISBN($isbn_verif, 13) . "' "; $suite_rqt .= "or code='" . formatISBN($isbn_verif, 10) . "' "; $q_count = "select count(*) from notices where " . $restrict . " and (0 " . $suite_rqt . ")"; $r_count = pmb_mysql_query($q_count, $dbh); $n_count = pmb_mysql_result($r_count, 0, 0); $this->nbresults = $n_count; $q_list = "select notice_id from notices where " . $restrict . " and (0 " . $suite_rqt . ")"; if (!$results_show_all) { $q_list .= " limit " . $this->page * $nb_per_page . ", " . $nb_per_page . " "; } $r_list = pmb_mysql_query($q_list, $dbh); $this->t_query = $r_list; if (!$results_show_all) { $this->nbepage = ceil($this->nbresults / $nb_per_page); } else { $this->nbepage = 1; } } else { $aq = new analyse_query(stripslashes($elt_query)); if ($aq->error) { $this->show_form(); error_message($msg["searcher_syntax_error"], sprintf($msg["searcher_syntax_error_desc"], $aq->current_car, $aq->input_html, $aq->error_message)); return; } else { $q_members = $aq->get_query_members("notices", "index_wew", "index_sew", "notice_id"); $q_count = "select count(*) from notices where " . $restrict . " and (" . $q_members["where"] . " " . $suite_rqt . ")"; $r_count = pmb_mysql_query($q_count, $dbh); $n_count = pmb_mysql_result($r_count, 0, 0); $this->nbresults = $n_count; $q_list = "select notice_id, " . $q_members['select'] . " as pert from notices where " . $restrict . " and (" . $q_members["where"] . " " . $suite_rqt . ") " . $q_members['post']; if (!$results_show_all) { $q_list .= " limit " . $this->page * $nb_per_page . ", " . $nb_per_page . " "; } $r_list = pmb_mysql_query($q_list, $dbh); $this->t_query = $r_list; if (!$results_show_all) { $this->nbepage = ceil($this->nbresults / $nb_per_page); } else { $this->nbepage = 1; } } } return ELT_LIST; }