Page 1 sur 1

Pagination la galère....

Posté : 19 avr. 2012, 10:23
par cris84
Bonjour à tous,

est-ce quelqu'un pour m'aider à faire la pagination sur code ci-dessous...
Je souhaiterai afficher les résultats 10 par page :?:
<?php

$rech=isset($_REQUEST['rech']) ? $_REQUEST['rech'] : null;
$and=' AND';
$pseudo=isset($_REQUEST['pseudo']) ? $_REQUEST['pseudo'] : null;
$ville=isset($_REQUEST['ville']) ? $_REQUEST['ville'] : null;
$sexe=isset($_REQUEST['sexe']) ? $_REQUEST['sexe'] : null;
$prenom=isset($_REQUEST['prenom']) ? $_REQUEST['prenom'] : null;


    if($rech =='ok'){
    //requete dynamique les and s'ajoute selon les variables recupérées
    $req="SELECT * FROM client where 1=1";

    //test pseudo
    if($pseudo<>""){
      $req.=$and." login like '%$pseudo%'";
      }
      
      //test ville
    if($ville<>""){
      $req.=$and." ville like '%$ville%'";
      }
      
      
      //test sexe
    if($sexe<>""){
      $req.=$and." sexe like '%$sexe%'";
      }
      
      //test prenom
    if($prenom<>""){
      $req.=$and." CliPrenom like '%$prenom%'";
      }
        
    //fin concatenation requete dynamique  
      
 
$res=mysql_query($req,$cnx);
$res1=mysql_query($req,$cnx);

$row=mysql_fetch_row($res1);
$count=$row[0];



   if ($count>0){
$ligne=mysql_fetch_assoc($res);
 

 echo"<table width='66%' align='center' class='tab'>";
    while($ligne){
    
    echo"<th>Photo</th><th>Pseudo</th><th>Prénom</th><th>Sexe</th><th>Ville</th><th>Voir profil</th><th>Lui écrire</th>";
    echo"<tr><td><div align='center'><img src=".$ligne['avatar']." width='60' height='60'></div></td>";
    echo"<td><div align='center'>".$ligne['login']."</div></td>";
    echo"<td><div align='center'>".$ligne['CliPrenom']."</div></td><td><div align='center'>".$ligne['sexe']."</div></td><td><div align='center'>".$ligne['ville']."</div></td>";
    echo"<td><div align='center'><a href=index.php?genre=profil&m=".$ligne['login'].">";
      echo"<img src='IMG/usr.gif' border='0'></a></div></td>";
    echo"<td><div align='center'><a href=index.php?genre=envoimess&dest=".$ligne['login']." ><img src='IMG/lettre2.jpg'></a></div></td></tr>
    <tr>
      <td colspan='7'><hr><br></td>
    </tr>
    "; 
    
    $ligne=mysql_fetch_assoc($res);
    
    }
    echo"</table>
 "; 
	
  }
         //si le count renvoi zero aucun resultat
         else{
         echo"<h5><br>Aucun résultat.<br><br></h5>";
         }


}
echo"<h2>Recherche approfondie</h2><div class='tab'>* Si vous ne remplissez pas les champs, le résultat affichera tous les hommes par défaut...</div><br>";
//formulaire de recherche
echo"<form action='index.php?genre=recherche&rech=ok' method='post'>
<table width='66%' border='0' align='center' class='tab'>
<tr><td width='27%' height='37'>Pseudo : </td>
<td width='73%'><input type='text' size='30' name='pseudo'></td>
<tr><td height='40'>Prénom : </td>
<td><input type='text' size='30' name='prenom'></td></tr>
<tr>
  <td height='40'>Sexe  : </td>
  <td><input type='radio' value='H'  checked name='sexe'>
Homme <input type='radio' value='F'  name='sexe'>
Femme</td>
</tr>
<tr><td height='40'>Ville : </td>
<td><input type='text' size='20' name='ville'></td></tr>

<tr>
  <td height='40'></td>
  <td height='40'><input type='submit' name='envoi' value='Lancer la recherche !'></td>
</tr>

</table>
</form>";


?>

Re: Pagination la galère....

Posté : 19 avr. 2012, 11:40
par Mazarini
Bonjour,

Pour la pagination on utilise LIMIT dans les ordres SQL : LIMIT 1,10 ou LIMIT 11,10...

Il faut donc gérer un numéro de page et calculer le premier enregistrement : page 1 => 1, page 2 => 11...
Il faut également faire un select avec un count(*) pour connaitre le nombre d'enregistrements et en déduire le nombre de pages.

Re: Pagination la galère....

Posté : 20 avr. 2012, 11:23
par cris84
Bonjour,
ok, j'ai compris le principe...
pourrais-je avoir un exemple sur la base de mon code sachant que j'ai déjà 5 requêtes SQL :?:
je pourrais ainsi peaufiner....

Re: Pagination la galère....

Posté : 20 avr. 2012, 21:20
par moogli
where 1=1 : totalement inutile

Tout comme la double requête.

Comment faire un affichage page par page

@+