Aide classer resultat table par page

Résolu
bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -  
bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voici mon script php pour afficher des petites annonces classés mais je n'arrive pas a a mettre par exemple 5 ou 10 résultat par page

pourriez vous m'aider

merci

voici mon code en question

while($row = mysql_fetch_array($req))
{
$id=$row['id']; $typedannonce=$row['typedannonce'];
$marque=$row['marque']; $autres=$row['autres'];
$modele=$row['modele']; $prix=$row['prix'];
$negociable=$row['negociable']; $annee=$row['annee'];
$etat=$row['etat']; $carburant=$row['carburant'];
$kilometrage=$row['kilometrage']; $transmission=$row['transmission'];
$immatricule=$row['immatricule']; $climatisation=$row['climatisation'];
$audio=$row['audio']; $cylindre=$row['cylindre'];
$puissance=$row['puissance']; $consommation=$row['consommation'];
$couleurinterieure=$row['couleurinterieure']; $couleurexterieure=$row['couleurexterieure'];
$email=$row['email']; $message=$row['message']; $date=$row['date']; $image=$row['image'];

$i=1;
echo "<table align='center' width='700' border='0'>
<tr>
<td width='114'>
<center>
<a href='photos/avendrenp/".$row['image1']." ' alt='Voir image en grand'>
<img src='photos/avendrenp/".$row['image1']." ' width='75' />
</a>
</center></td>
<td width='258' height='78'>".$marque." ".$autres." ".$modele." ".$annee." ".$negociable."</td>
<td align='center' width='147'>".$prix."</td>
<td align='center' width='153'>".$date."</td>
</tr>";

}

2 réponses

  1. coccoweb Messages postés 155 Statut Membre 27
     
    Voila essaye ça, je n'ai pas tester puisque je n'ai pas ta base de donnée mDr

    <?php
    /* On initialise les variables  */
    $limit=5; // Donc 5 articles par page
    // Sur quel page on est ?
    if (isset($_GET['page']))
    {
    $page = intval($_GET['page']);
    }
    else
    {
    $page=0;
    }
    // Maintenant le navigateur de pages
    // Affiche le page par page avec ses liens
    // Variable nombre d'enreg par page
    $debut=$page*$limit; // Debut est egale a page x limit donc page 2 sera egale a 10
    
    mysql_connect('localhost', 'arrrrrr', 'rrrrr'); 
    mysql_select_db("rrrrr"); 
    $sql = "SELECT * FROM avendrepubliee ORDER BY id DESC LIMIT ".$debut.", ".$limit." "; 
    $req = mysql_query($sql) or die(mysql_error()); 
    $count = mysql_result(mysql_query("SELECT count(*) FROM avendrepubliee"), 0);
    
    // Compte le nombre de champ
    $nav_page=true; // J'indique une variable vide, car si je ne le fais pas, j'ai des erreurs
    if ($page>0)
    {
    $precedent=$page-1;
    $nav_page.='<a href="rechercheravendre.php?page='.$precedent.'">PRECEDENT</a>&nbsp;';
    }
    $i=0; // On initialise $i => Page
    $j=1; // On initialise $j => La page afficher
    if($count>$limit)
    {
    	while($i<ceil($count/$limit))
    	{
    	// C'est une page avant ou après la position actuel
    	if($i!=$page){$nav_page.='<a href="rechercheravendre.php?page='.$i.'">'.$j.'</a>';}
    	// C'est la page en cours
    	else { $nav_page.="&nbsp;<b>".$j."</b>&nbsp;";}
    	$i++;$j++;
    	}
    }
    if($debut+$limit<$count)
    {
    $suivant=$page+1;
    $nav_page.='&nbsp;<a href="rechercheravendre.php?page='.$suivant.'">SUIVANT</a>';
    }
    /* Fin initialisation */
    
    echo "<table align='center' width='700' border='0'>";
    while($row = mysql_fetch_array($req)) 
    { 
    /* Tu n'est pas obligé de stocker tes tables dans des variables.
    De plus a l'avenir tu risque d'utiliser des jointure, du moins je l'espere pour toi
    et la tu risque de perdre une ligne.
    */
    /*
    $id=$row['id']; $typedannonce=$row['typedannonce']; 
    $marque=$row['marque']; $autres=$row['autres']; 
    $modele=$row['modele']; $prix=$row['prix']; 
    $negociable=$row['negociable']; $annee=$row['annee']; 
    $etat=$row['etat']; $carburant=$row['carburant']; 
    $kilometrage=$row['kilometrage']; $transmission=$row['transmission']; 
    $immatricule=$row['immatricule']; $climatisation=$row['climatisation']; 
    $audio=$row['audio']; $cylindre=$row['cylindre']; 
    $puissance=$row['puissance']; $consommation=$row['consommation']; 
    $couleurinterieure=$row['couleurinterieure']; $couleurexterieure=$row['couleurexterieure']; 
    $email=$row['email']; $message=$row['message']; $date=$row['date']; $image=$row['image']; 
    */
    echo "<tr> 
    <td width='114'> 
    <center> 
    <a href='photos/avendrenp/".$row['image1']." ' alt='Voir image en grand'> 
    <img src='photos/avendrenp/".$row['image1']." ' width='75' /> 
    </a> 
    </center></td> 
    <td width='258' height='78'>".$row['marque']." ".$row['autres']." ".$row['modele']." ".$row['annee']." ".$row['negociable']."</td> 
    <td align='center' width='147'>".$row['prix']."</td> 
    <td align='center' width='153'>".$row['date']."</td> 
    </tr>"; 
    
    } 
    echo "</table>";
    // Hop on affiche le navigateur
    echo $nav_page;
    ?>
    


    J'ai fais mon possible pour que se soit compréhensible
    Si tu as des erreurs envois les ici
    1
    1. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      hop c est genial mais il y a un petit hic quand je clique sur la page 2 voila ca que ca m affiche
      Page Web introuvable
      0
    2. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      sinon le script affiche bien les numetro de page et le suivant j'attend de tes nouvelles merci
      0
  2. coccoweb Messages postés 155 Statut Membre 27
     
    Dans ta requete SQL tu as LIMIT 0, 30 habituellement

    Traduit en français ça dit LIMIT A partir de, j'affiche autant de résultat

    Si tu veux afficher les 5 premiers résultat tu par de 0 et tu affiche 5 donc LIMIT 0, 5

    Tu es maintenant sur ta seconde pages :

    $ellement_par_page = 5;

    $page = 2; // Que tu récupère en GET ou POST
    /* moins 1 parce que le départ est 0 */
    $cette_page = $page - 1; // ici 1

    /* Math */
    // On calcul le départ pour afficher

    // donc 1 * 5 = 5
    $affiche_page=$cette_page * $ellement_par_page;

    // ici il démarre a 5 et affiche les 5 entrés suivante.
    $requete = "SELECT * FORM 'ma_table' LIMIT ".$affiche_page." , ".$ellement_par_page." ";
    0
    1. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      dsl mais je ne cmprend pas tres bien

      merci
      0
    2. coccoweb Messages postés 155 Statut Membre 27
       
      Tu coince ou ?
      Limite toi a la première parti.
      Le script plus bas sera pour après
      0
    3. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      je ne comprend pas concretement comment je doit m 'y prendre dsl c'est la premiere fois que j'ai a faire ca
      0
    4. coccoweb Messages postés 155 Statut Membre 27
       
      un requete standard est comme ca

      SELECT * FORM 'ma_table' LIMIT 0, 30

      Donc : prend tout dans ma_table en commencant a 0 et affichant 30 lignes

      Si tu avais mis :
      SELECT * FORM 'ma_table' LIMIT 0, 5

      Tu demande les 5 lignes en commancant de 0

      Ca va toujours pour toi ?
      0
    5. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      oui ce bout la je le connait deja mon probleme c'est pour faire les bouton en bas
      0