Page 1 sur 1

Problème d'affichage page par page

Posté : 09 févr. 2006, 13:06
par Cobra52
Bonjour,

J'ai un problème pour un affichage page par page.

Je récupère les valeurs d'un formulaire ($var1, $var2, $var3)

Je me suis inspiré du code "affichage page par page" de phpfrance.
$nb_cherche = 2;
$page_en_cours = isset($_GET['page']) ? $_GET['page'] : 0; 
$page_affichee = ($page_en_cours + 1);

$debut = $page_en_cours * $nb_cherche;   
				    		 
$sql_select = "SELECT id FROM matable WHERE var1 = '$var1' AND var2 = '$var2' AND var3 = '$var3'";
$result = mysql_query($sql_select) or die (mysql_error());
$nb_results = mysql_num_rows($result);  // ici $nb_result = 3
$nb_pages = ceil($nb_results / $nb_cherche);  // ici  $nb_pages = 2
while($row = mysql_fetch_array($result))
	{
$sql_select2 = "SELECT * FROM matable WHERE id = '".$row["id"]."' ORDER BY $var4 ASC LIMIT ". $debut .", ". $nb_cherche .";";
$result2 = mysql_query($sql_select2) or die (mysql_error());
while($row2 = mysql_fetch_array($result2))
    	{
// ici j'affiche mes tables html
                }
}
Et ensuite la barre de navigation
if($nb_pages > 0) 
	{ 
/* On définit une variable qui contiendra les données de navigation */ 
$barre_nav = ""; 
/* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */ 
	if($nb_pages > 1) 
    		{
    		if($page_en_cours > 0) 
       			 { 
           			 for($i = 0; $i < $page_en_cours; $i++) 
            				{ 
            				$p = $i + 1; 
 	    $barre_nav .= "<a href='mon_fichier.php?id=$id&page=$i' title=\"page ". $p ."\"  class=\"1\">". $p ."</a> | "; 
           				 } 
       				 } 
		$barre_nav .= "<strong>". $page_affichee ."</strong>"; 
/* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */ 
        if(($page_affichee) < $nb_pages) 
        	{ 
/* Il reste encore d'autres pages à afficher */ 
          		$nb_suivantes = $nb_pages - ($page_affichee); 
           			 for($j = ($page_affichee); $j < $nb_pages; $j++) 
           			 { 
           			     $p = $j + 1; 
           			     $barre_nav .= " | <a href='mon_fichier.php?id=$id&page=$j' title=\"page ". $p ."\"  class=\"1\">". $p ."</a>"; 
           			 } 
       				}         			
    				}     				
    				else 
    				{ 
/* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */ 
      				  $barre_nav .= "page 1/1<br />"; 
    				}
    				
		
		//$debut = $page_en_cours * $nb_cherche;	
		
		echo "$barre_nav<br /><br />";
	}
Le problème est que cela m'affiche 3 tables html au lieu de 2 (qui devrait correspondre à $nb_cherche = 2)
Et dans la barre de navigation, le id= au dernier id de ma dernière table affichée, au lieu du 2ème id, le 3ème devant être affiché à la seconde page.

Mes compétences en php/mysql étant limitées, si vous pouviez m'aider ...

Merci par avance.

Re: Problème d'affichage page par page

Posté : 09 févr. 2006, 13:10
par charabia
Bonjour,

J'ai un problème pour un affichage page par page.
Bonjour,

Dis nous le souci que tu as et l'erreur retourné si tu l'as.

Posté : 09 févr. 2006, 13:15
par Cobra52
Désolé, j'ai fait une fausse manip, j'avais cliqué sur "envoyer" au lieu de "prévisualisation" :? :D