PROBLEME pagination php/mysql

Fermé
scurff - 12 août 2008 à 20:02
 Quentin - 9 janv. 2011 à 12:00
Bonjour,

j'ai un pb avec un code php.
Mon souhait est de d'afficher 4 articles /page resultant d'une requête sql d'une table mysql.

voilà ce que j'ai reussi a realiser me donne un resultat tres moyen :

les 4 premiers resultats s'affichent bien sur la 1 ere page et quand je clique sur la 2 eme page par exemple, je n'ai pas les resultats suivants, mais les même que ceux de la page 1. ( pour l'instant j'ai 6articles dans la table, ce devrait donc faire : 4 articles sur la premiere page, et 2 sur la deuxieme page) la (4 articles /1ere page et 4 même articles sur la 2 eme page) Ca fait 2 jours que j'essaie etant limité et debutant en php pourriez vous m'aider svp/ je n'y arrive plus! merci

voici le code :

PHP:
<?php

$nbParPage = 4;
$req1="select * from images order by name_img asc ";
$result = mysql_query($req1);
$nbimg=mysql_fetch_row($result);
$nbimg=$nbimg[0];
//
echo "il y a $nbimg lignes";
$moy= ceil($nbimg/$nbParPage);
echo "<br>et il y aura $moy pages<br>";

if($nbimg) {
// debut du tableau
echo "<table border='1' width='520'>";

// lecture et affichage des résultats
while($row = mysql_fetch_assoc($result)) {

$titre = $row['titre_img'];
$ImageName = $row['name_img'];
$carac_img = $row['carac_img'];

// Cheminde l'image
$path_image = "./images/".$ImageName;
// Récupère les dimentions de l'image
$JPEGRes = ImageCreatetruecolor(120,120)or die("Impossible de crée un flux d'images GD");
$xsrc = imagesx($JPEGRes);
$ysrc = imagesy($JPEGRes);

echo '<tr>';
echo "<tr><td align='center'colspan='2'><h3>$titre</td></tr>";
echo "<td><center><img src='$path_image' width='$xsrc' height='$ysrc' border='0' align='center'></td>";
echo "<td bgcolor='#9999CC' height='20'><center>$carac_img</td>";
echo "</tr>";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat


if ($moy>=2)
{
if (isset($_GET['page']))
{
if ($_GET['page']==1)
{
echo "Precedent ";
}
else
{
echo "<a href=\"accumulateur.php?page=".($_GET['page']-1)."\">Precedent</a> ";
}
}
else{echo "Precedent ";}
}
for ($i=0;$i<$moy;$i++)
{
echo "<a href=\"accumulateur.php?page=".($i+1)."\"> Page ".($i+1)."</a> ";
}
if ($moy>=2)
{
if (isset($_GET['page']))
{
if ($_GET['page']==$moy){echo " Suivant";
}
else
{
echo " <a href=\"accumulateur.php?page=".($_GET['page']+1)."\">Suivant</a>";
}
}
else{echo "<a href=\"accumulateur.php?page=1\">Suivant</a>";}
}
echo "<br>La page courante est :".$_GET['page'];

?>
A voir également:

2 réponses

dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
13 août 2008 à 02:23
c normal, ta requete selectionne tous les articles,

$req1="select * from images order by name_img asc ";

fais plutot

if(isset($_GET['page']))
{
$index=$_GET['page']*$nbParPage;
}
else
{
$index=0;
}

$req1="select * from images order by name_img asc limit $index,$nbParPage";
0
Il y a un tuto trés complet,
http://quentinzone.fr/2011/01/09/tuto-un-systeme-de-pagination-avec-php-et-mysql/
0