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 navigationif($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.