Page 1 sur 1

Problème affichage page par page

Posté : 16 mai 2009, 22:42
par foxrpg
Bonsoir, voila j'ai adapté a mon site ( en test en local sous wamp2) un script php page par page .
Il semble fonctionner , il y a bien les numéros de pages pour la navigation mais un petit problème , malgré que je définis une limit d'affichage de 10 éléments par page , il m'affichage quand même tout les éléments sur chaques pages.

C'est a dire si j'ai 100 élements dans ma table , il me crée bien 10 pages mais il affiche les 100 éléments sur chacune des 10 pages :s

Voici mon code php:

Merci de votre aide
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("videos",$link);
$result = mysql_query ("SELECT * from videos ORDER by id DESC");  // Prepare le requete MySql
 $ret = $result;
 $limit=10;   // Variable nbr d'enreg par Page...
 $page = isset($_GET['page']) ? $_GET['page'] : '';
 if(!isset($debut)) $debut=0;  // Initialisation de $debut ...
 $debut=$page*$limit;
 $nb_total=mysql_num_rows($ret);  // Nbr de résultats possibles ...
 $limite=mysql_query("$result LIMIT $debut,10");
  while($myrow=mysql_fetch_array($result)) 
{
echo "<table width='42%' border='1' cellspacing='0' bordercolor='#000000'>";
echo  "<tr>";
echo   " <td width='42%' bgcolor='#ffffff'><img src='site/Image6666.jpg' width='413' height='22' /></td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'>$myrow[nom].                 -$myrow[date]-</td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'><a href=\"animaux.php?id=$myrow[id]\"><img src='$myrow[image]'></a></td></td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'>$myrow[description]</td>";
echo  "</tr>";
echo "</table>";
echo "<br>";
}
//bar de navigation des pages ce dessous
 if ($page>0) {
  $precedent=$page-1;
  echo  "<a href='pageparpage.php?page=$precedent'>PRECEDENT</a>&nbsp;";
  }
 $i=0;
 $j=1;
 if($nb_total>$limit) {
  while($i<($nb_total/$limit)) {
   if($i!=$page){echo "<a href='pageparpage.php?page=$i'>$j</a>&nbsp;";}
   else { echo "<b>$j</b>";}
   $i++;$j++;
  }
 }
 if($debut+$limit<$nb_total) {
  $suivant=$page+1;
  echo "<a href='pageparpage.php?page=$suivant'>SUIVANT</a>";
 }
?>

Posté : 16 mai 2009, 22:46
par foxrpg
Petite précision supplémentaire , j'ai testé en mettant a la 3ème ligne :
$result = mysql_query ("SELECT * from videos ORDER by id DESC LIMIT 0,10");
mais dans ce cas le script ne fonctionne plus car alors il ne prend que les 10 premiers pour les limiter a 10 affichage par page donc ca ne va plus

Posté : 16 mai 2009, 23:59
par charabia
$limite=mysql_query("$result LIMIT $debut,10");
A quoi correspond ce $result ? Il s'agit d'une requête, tu ne peux pas l'utiliser.
$limite=mysql_query("SELECT * from videos ORDER BY id DESC LIMIT $debut,10");
devrait mieux marcher.

Posté : 17 mai 2009, 00:02
par Aureusms
Ca m'a l'air bien compliqué ton truc , essaye ca :
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("videos",$link);

$limit=10;   // Variable nbr d'enreg par Page...
$page = (isset($_GET['page']) && is_numeric($_GET['page'])) ? $_GET['page'] : '';
$debut = (!isset($debut)) ? 0 : $page*$limit;

$requete = "SELECT * from videos ORDER by id DESC LIMIT $debut,$limit"
$result = mysql_query ($requete);  // Prepare le requete MySql
 
$nb_total=mysql_num_rows($ret);  // Nbr de résultats possibles ...
$nb_page = ceil($nb_total/$limit);  //nombre de page possible

while($myrow=mysql_fetch_assoc($result)) 
{ 
echo "<table width='42%' border='1' cellspacing='0' bordercolor='#000000'>";
echo  "<tr>";
echo   " <td width='42%' bgcolor='#ffffff'><img src='site/Image6666.jpg' width='413' height='22' /></td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'>$myrow[nom].                 -$myrow[date]-</td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'><a href=\"animaux.php?id=$myrow[id]\"><img src='$myrow[image]'></a></td></td>";
echo  "</tr>";
echo  "<tr>";
echo    "<td bgcolor='#0099CC'>$myrow[description]</td>";
echo  "</tr>";
echo "</table>";
echo "<br>";
}
//bar de navigation des pages ce dessous
 if ($page>0 && is_numeric($page)) {
  $precedent=$page-1;
  echo  "<a href='pageparpage.php?page=$precedent'>PRECEDENT</a>&nbsp;";
  }
 
for ($i=0; $i < $nb_page ; $i++)
{
echo "<a href='pageparpage.php?page=$i'>$i</a>&nbsp;";
}

 }
 if($page < $nb_page ) {
  $suivant=$page+1;
  echo "<a href='pageparpage.php?page=$suivant'>SUIVANT</a>";
 }
?>

Posté : 17 mai 2009, 00:21
par foxrpg
Super ca fonctionne merci a vous deux 8-)

Posté : 17 mai 2009, 11:52
par Aureusms
Pas de problème.
Un conseil inscrit toi c'est gratuit et tu auras plein d'avantage comme recevoir des emails de réponses à ton sujet. En plus tu pourras mettre [RESOLU] à tes sujets.

(mais bon je ne sais pas si il va revenir voir son post un jour en tant qu'invité...)