=curdate(),0,1) as retard, " ;
$sql .= " expl_notice, expl_bulletin, notices_m.notice_id as idnot, trim(concat(ifnull(notices_m.tit1,''),ifnull(notices_s.tit1,''),' ',ifnull(bulletin_numero,''), if (mention_date, concat(' (',mention_date,')') ,''))) as tit, tdoc_libelle ";
$sql .= "FROM (((exemplaires LEFT JOIN notices AS notices_m ON expl_notice = notices_m.notice_id ) ";
$sql .= " LEFT JOIN bulletins ON expl_bulletin = bulletins.bulletin_id) ";
$sql .= " LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id), " ;
$sql .= " empr,pret,empr_groupe, groupe,docs_type";
if ($empr_groupes_localises && $empr_location_id !=0) {
$sql .= ",empr as coords_resp_group";
}
$sql .= " WHERE ";
if ($empr_groupes_localises && $empr_location_id !=0) {
$sql .= "coords_resp_group.id_empr = groupe.resp_groupe AND coords_resp_group.empr_location='$empr_location_id' AND ";
}
$sql .= "pret.pret_idempr = empr.id_empr AND pret.pret_idexpl = exemplaires.expl_id AND empr_groupe.empr_id = empr.id_empr AND groupe.id_groupe = empr_groupe.groupe_id AND exemplaires.expl_typdoc = docs_type.idtyp_doc ";
$sql .= $critere_requete;
$tempTable="expl_groupe_".md5(microtime(true));;
pmb_mysql_query("CREATE TEMPORARY TABLE ".$tempTable." ".$sql,$dbh);
$sql = "SELECT * FROM ".$tempTable;
$req_nombre_lignes_pret = pmb_mysql_query($sql,$dbh);
$nombre_lignes_pret = pmb_mysql_num_rows($req_nombre_lignes_pret);
//Si aucune limite_page n'a été passée, valeur par défaut : 10
if ($nb_per_page=="") { $nb_per_page = 10; }
$nbpages= $nombre_lignes_pret / $nb_per_page;
// on arondi le nombre de page pour ne pas avoir de virgules, ici au chiffre supérieur
$nbpages_arrondi = ceil($nbpages);
// si par un quelconque hasard, on se retrouve après le dernier enregistrement, rechargement de la liste au premier ouvrage
if ($page > $nbpages_arrondi) {
echo "";
}
switch($sub) {
case "ppargroupe":
echo "
".$msg[1110]." : ".$msg[1114]."
";
break;
case "rpargroupe":
echo "
".$msg[1110]." : ".$msg["menu_retards_groupe"]."
";
break;
default:
break;
}
jscript_checkboxb();
//Renvoi un tableau contenant la liste des groupes, ainsi que l'index du premier élément de ce groupe dans la requete.
pmb_mysql_query("SET @rank :=0;",$dbh);
$sqlgroup = "
SELECT id_groupe, libelle_groupe, MIN(rank) as min_pos FROM (
SELECT rank, id_groupe, libelle_groupe FROM (
SELECT @rank := @rank +1 AS rank, libelle_groupe, id_groupe FROM
(
".$sql."
) as temp
ORDER BY libelle_groupe
) AS foo
) AS final GROUP BY libelle_groupe;";
$groups = array();
$req = pmb_mysql_query($sqlgroup,$dbh);
while ($row = pmb_mysql_fetch_array($req)) {
$groups[$row["id_groupe"]]=array("libelle" => $row["libelle_groupe"], "first_pos" => $row["min_pos"]-1);
}
// si la variable numero de page a une valeur ou est différente de 0,
// on multiplie la limite par le numero de la page passée par l'url
// sinon, pas de variable numero_page
if (!isset($gogroup_id)){
$gogroup_id = -1;
}
if ($gogroup_id != -1) {
$limite_mysql = $groups[$gogroup_id]['first_pos'];
$page = ceil(($groups[$gogroup_id]['first_pos'] + $nb_per_page) / $nb_per_page) - 1;
}else{
if(!$page) $page=1;
$limite_mysql =($page-1)*$nb_per_page;
}
//On ajoute le titre
$sql .= " LIMIT ".$limite_mysql.", ".$nb_per_page;
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = pmb_mysql_query($sql,$dbh) or die("Erreur SQL ! ".$sql." ".pmb_mysql_error());
echo "";
// on va scanner tous les tuples un par un
echo "";
$bouton_imprime_tout ="" ;
switch($sub) {
case "ppargroupe" :
$bouton_imprime_tout = "";
break;
case "rpargroupe" :
$bouton_imprime_tout = "";
break;
default :
break;
}
if ($bouton_imprime_tout) echo "
";
$nav_bar = aff_pagination ("$url_page?categ=$categ&sub=$sub", $nombre_lignes_pret, $nb_per_page, $page, 10, false, true) ;
print $nav_bar;
pmb_mysql_free_result($req);
?>