-
Notifications
You must be signed in to change notification settings - Fork 0
/
testlimit.php
360 lines (265 loc) · 9.88 KB
/
testlimit.php
1
<?php session_start();require_once("local.php");?><?php function coche($arg){ global $couleur; $i=0; while($couleur[$i]){ if($couleur[$i]==$arg){return TRUE; break; } $i++; }}//--- fonction pour les limites d'affichagefunction nbp($total,$increment){$reste=$total % $increment;$total=$total-$reste;$j=0;for($i=0;$i<=$total; $i=$i+$increment){$j++;}if($reste==0){$j--;}return $j;}//-----------------/* === CODE A CHANGER =========$flag=0; if(isset($_POST['submit'])){extract($_POST); $flag=1;=====================pour celui ci-dessous =========*/if(!empty($_POST)){$_SESSION['tab']=$_POST;$tab=$_POST;extract($tab); $page=1;}if($_GET['flag']==1){extract($_SESSION['tab']);}//========================== $i=0; if($prix>0) { $choix[$i++] = "prix "; switch($prix){ case 1: $choix[$i++] = "< 1000"; break; case 2: $choix[$i++] = ">= 1000 AND prix <=2000"; break; case 3: $choix[$i++] = ">=2000"; break; } } if($velo){ $choix[$i++] = "velo ="; $choix[$i++] = $velo; } if($voiture){ $choix[$i++] = "voiture ="; $choix[$i++] = $voiture; } if($etat){ $choix[$i++] = "etat = '"; $choix[$i++] = $etat."' "; } if($couleur) { $nom=$i++; $val=$i++; if(count($couleur) >1){ $choix[$nom] = " (couleur= '";} else{ $choix[$nom] = "couleur= '";} $j=0; $condition=""; $choix[$val]=""; while($couleur[$j]){ if($j>0){$condition = "' OR couleur = '";} $choix[$val].=$condition.$couleur[$j]; $j++; } $choix[$val].="' "; if(count($couleur) >1){$choix[$val].=") ";} }$critere = $choix[0].$choix[1]." ";for($j=2;$j<$i;$j+=2){ $critere .=" AND ".$choix[$j].$choix[$j+1]." "; }if($i>0){//================ limite =======================$sql=mysql_query("SELECT id FROM csv where $critere ", $connexion);$nb_de_lignes=mysql_num_rows($sql);$nb_de_pages=nbp($nb_de_lignes, $increment); //-- pour verification uniquement - a desactiver//echo "nb ligne $nb_de_lignes <br>";//echo "nb page $nb_de_pages <br>";//----------------------------------------------if($_GET['page']){ //test si un lien a été cliqué$flagpage=1; // on met le drapeau à 1$page=$_GET['page'];}else{$page=1;}$debut= ($page-1)*$increment +1;$depart_boucle=1;if( $max_pages_vues>$nb_de_pages){$max_pages_vues=$nb_de_pages;}$fin_boucle=$max_pages_vues;if($flagpage==1){$depart_boucle=$page-intval($max_pages_vues/2);$fin_boucle=$page+intval($max_pages_vues/2); if($fin_boucle>$nb_de_pages){ $fin_boucle=$nb_de_pages; $depart_boucle=$fin_boucle-$max_pages_vues; } if($depart_boucle<=0){ $depart_boucle=1; $fin_boucle=$depart_boucle+$max_pages_vues; }}//================CODE DEVENU INUTILE ICI ================================/*$sql=mysql_query("SELECT * FROM csv where $critere ", $connexion);$nb=mysql_num_rows($sql);if(!$nb){$msg= "Aucun résultat - Séléctionnez moins de critères";}========================================================================*/}?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Formulaire de recherche à critères multiples par Milan.</title> <style type="text/css" media="screen"><!--body { font-size: 12px; font-family: Verdana; margin: 10px; }td { font-size: 12px; font-family: Verdana; padding: 1px 3px; }--></style> </head> <body> <table border="0" cellspacing="2" cellpadding="0" align="center"> <tr> <td> <h1>Formulaire de recherche à critère multiple par <a href="http://milan2.free.fr" target="_blank">Milan</a></h1> <div class="cadre"> <p><em>Pour info</em> : le nom de fichier de cette page est<strong> <span class="gras">testlimit.php</span></strong>. A savoir car je m'y réfère dans les liens.</p> </div> <p>Dans ce formulaire, je laisse le choix au visiteur du nombre d'articles à afficher par page et du nombre constituant la plage de liens.</p> <p>A titre d'exemple concret,</p> <ul> <li>cochez Voiture et au moins quatre couleurs dans le formulaire ci-dessous. <li>Laissez le le nb de résultats à 5 pages <li>Mais choisissez le Nb de de pages visible à 10 </ul> <p></p> <p>Vous pouvez constater, en cliquant sur les numéro de page, que ceux-ci changent de plage, que le numéro sélectionné est en gras, et qu'au besoin, apparaissent les "boutons" Debut, Fin, Précédent et Suivant.</p> <form class="cadre" method="post"> <p><input type="hidden" name="flag" value="1"></p> <p>prix <select name="prix" size="1"> <option value="0">choisir</option> <option <?php if($flag==1 && $prix==1){echo " selected ";}?> value="1">moins de 1000</option> <option <?php if($flag==1 && $prix==2){echo " selected ";}?> value="2">de 1000 à 2000</option> <option <?php if($flag==1 && $prix==3){echo " selected ";}?> value="3">plus de 2000</option> </select></p> <p>velo <input type="checkbox" name="velo" value="1" <?php if($flag==1){if(isset($velo)){echo " checked";}} ?>> voiture <input type="checkbox" name="voiture" value="1" <?php if($flag==1){if(isset($voiture)){echo " checked";}} ?>></p> <p>Neuf <input type="radio" name="etat" value="neuf" <?php if($flag==1){if($etat=="neuf"){echo " checked";}} ?>> occasion <input type="radio" name="etat" value="occasion" <?php if($flag==1){if($etat=="occasion"){echo " checked";}} ?>></p> <p>Couleurs :</p> <table width="252" border="0" cellspacing="2" cellpadding="0"> <tr> <td><input type="checkbox" name="couleur[]" value="blanc" <?php if($flag==1){if(coche("blanc")){echo " checked";}}?>></td> <td> <p>blanc</p> </td> <td><input type="checkbox" name="couleur[]" value="rouge" <?php if($flag==1){if(coche("rouge")){echo " checked";}}?>></td> <td> <p>rouge</p> </td> <td><input type="checkbox" name="couleur[]" value="bleu" <?php if($flag==1){if(coche("bleu")){echo " checked";}}?>></td> <td> <p>bleu</p> </td> </tr> <tr> <td><input type="checkbox" name="couleur[]" value="noir" <?php if($flag==1){if(coche("noir")){echo " checked";}}?>></td> <td> <p>noir</p> </td> <td><input type="checkbox" name="couleur[]" value="vert" <?php if($flag==1){if(coche("vert")){echo " checked";}}?>></td> <td> <p>vert</p> </td> <td><input type="checkbox" name="couleur[]" value="orange" <?php if($flag==1){if(coche("orange")){echo " checked";}}?>></td> <td> <p>orange</p> </td> </tr> </table> <p>Nb de résultats à afficher par page <select name="increment" size="1"> <option <?php if($flag==1 && $increment==5){echo " selected ";}?> value="5">5</option> <option <?php if($flag==1 && $increment==10){echo " selected ";}?> value="10">10</option> <option <?php if($flag==1 && $increment==15){echo " selected ";}?> value="15">15</option> <option <?php if($flag==1 && $increment==20){echo " selected ";}?> value="20">20</option> </select></p> <p>Nb de liens de page visibles <select name="max_pages_vues" size="1"> <option <?php if($flag==1 && $max_pages_vues==5){echo " selected ";}?> value="5">5</option> <option <?php if($flag==1 && $max_pages_vues==10){echo " selected ";}?> value="10">10</option> <option <?php if($flag==1 && $max_pages_vues==15){echo " selected ";}?> value="15">15</option> <option <?php if($flag==1 && $max_pages_vues==20){echo " selected ";}?> value="20">20</option> </select></p> <p><input type="submit" name="submit"></p> <p></p> </form> <p><?php if($i>0){echo "<p class='cadre'>";if(!$nb_de_lignes){echo "Aucun résultat - Choissisez d'autres critères";exit;}echo "nb réponses trouvée $nb_de_lignes <br>";echo "nb de pages $nb_de_pages <br>";//echo "critere $critere <br>";//echo "inc $increment --- debut $debut <hr>";$sql=mysql_query("SELECT * FROM csv where $critere LIMIT $debut, $increment ", $connexion);?><?php //------- affichage du lien debutif($flagpage==1 && $page > $max_pages_vues){?><a href="testlimit.php?page=1&flag=1"><strong>Debut</strong></a> | <?php } ?><?php //------- affichage du lien page précedenteif($flagpage==1 && $page > 1){ ?><a href="testlimit.php?page=<?php echo $page-1 ?>&flag=1"><strong>Prec </strong></a><?php } ?><?php //-- compte et affiche les pages selon la variable $max_pages_vuesfor($i=$depart_boucle;$i<=$fin_boucle;$i++){?><a href="testlimit.php?page=<?php echo $i ?>&flag=1"><?php if($flagpage==1 && $i == $page ){echo "<b> $i</b>";}// met en gras le lien selectionneelse echo $i; ?></a>| <?php }if($fin_boucle < $nb_de_pages){echo " ...";} // ajoute 3 points tant que la plage affichee n'atteint pas la dernière page ?><?php //----- page suivante - idem que precedenteif($flagpage==1 && $page < $nb_de_pages){?><a href="testlimit.php?page=<?php echo $page+1 ?>&flag=1"><strong>Suiv</strong></a> <?php } ?><?php //-------fin idem que debutif($flagpage==1 && $page < $nb_de_pages){?><a href="testlimit.php?page=<?php echo $nb_de_pages; ?>&flag=1">| <strong>Fin</strong></a> | <?php } ?><br /> <br /> </p> <table width="284" border="1" cellspacing="2" cellpadding="0"> <tr> <td>prix</td> <td>velo</td> <td>voiture</td> <td>etat</td> <td>couleur</td> </tr> <?php while($res=mysql_fetch_object($sql)){?> <tr> <td><?php echo $res->prix ?></td> <td><?php echo $res->velo ?></td> <td><?php echo $res->voiture ?></td> <td><?php echo $res->etat ?></td> <td><?php echo $res->couleur ?></td> </tr> <?php } ?> </table> </p><?php } ?> <p></p>