Problème affichage page par page

foxrpg
Invité n'ayant pas de compte PHPfrance

16 mai 2009, 22:42

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>";
 }
?>

foxrpg
Invité n'ayant pas de compte PHPfrance

16 mai 2009, 22:46

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

16 mai 2009, 23:59

$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.
Modifié en dernier par charabia le 17 mai 2009, 00:02, modifié 1 fois.

ViPHP
ViPHP | 1996 Messages

17 mai 2009, 00:02

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>";
 }
?>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

foxrpg
Invité n'ayant pas de compte PHPfrance

17 mai 2009, 00:21

Super ca fonctionne merci a vous deux 8-)

ViPHP
ViPHP | 1996 Messages

17 mai 2009, 11:52

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é...)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr