Page avec bouton suivant/précédent (PHP)

gagnier -  
louloute300 Messages postés 347 Statut Membre -
Bonjour,

je fait un petit site ou j'affiche les produit en vente d'une boutique.

voici mon code :

<?php
require_once('bdd/connexion.php'); //récupère les variables de connexion à la base de donnée
$page = $_GET['page'];
if($page == 1) {
    $nb = 0;
}
else {
    $nb_magique = 9;
    $nb = $page*$nb_magique-8;
}
$error = $_GET['error'];
if($page == '') { header('Location:?page=1'); }
else { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Liste des produits</title>
</head>
<body>
<div class="page">
<?php 
include 'produit.php';
if($page == 1) {}
else {
    echo'<a href="?page=',$page-1,'"><< Précédent </a>';
}
echo "Page $page";
echo '<a href="?page=',$page+1,'"> Suivant >></a>';
$produit->closeCursor(); // Termine le traitement de la requête
?>
</div>
</body>
</html>
<?php
} 
?>


Et la page produit.php :

<?php
$produit = $bdd->query("SELECT * FROM 'produit' ORDER BY 'produit' ASC LIMIT $nb, 9 "); //on sélectionne tout dans la table produit

while ($get = $produit->fetch()) //on récupère les données
{
?>
<table align="center" width="410" border="0">
<tr>
<td width="200" rowspan="2">
<img align="middle" width="199px" height="199px" src="<?php if ($get['image_produit'] == '')  echo 'c_images/no_image.jpg'; else echo $get['image_produit'];  ?>" style="border-color:#000; border-style:groove; border-width:medium;"></td>
<td height="100">Produit :<br><?php echo $get['produit']; ?><br><i><?php echo $get['desc']; ?></i></td>
</td>
<tr>
<td height="100">Prix :<br><?php echo $get['prix']; ?>$</td>
</tr>
</table>
<br>
<?php
}
?>


Mon problème est que j'ai le lien précédent partout sauf a la premiere page, ce qui est parfait. j'aimerais que s'il n'y a pas d'autre page, le bouton suivant ne soit pas afficher...

Merci d'avance de votre réponse !
Christophe Gagnier

1 réponse

  1. louloute300 Messages postés 347 Statut Membre 29
     
    Voila ce que je te propose:

    Solution n°1:

    Tu remplace le

    include 'produit.php';

    Par l'équivalent du fichier produit.php afin de n'avoir q'un seul fichier.

    Ensuite, tu remplaces
    echo '<a href="?page=',$page+1,'"> Suivant >></a>';

    par
    if (mysql_num_rows($produit)>$page+1){
    echo '<a href="?page=',$page+1,'"> Suivant >></a>';}

    Solution n°2

    tu remplaces:

    echo '<a href="?page=',$page+1,'"> Suivant >></a>';

    par:
    $produit = $bdd->query("SELECT * FROM 'produit' ORDER BY 'produit' ASC LIMIT $nb, 9 "); //on sélectionne tout dans la table produit
    if (mysql_num_rows($produit)>$page+1){
    echo '<a href="?page=',$page+1,'"> Suivant >></a>';}
    0
    1. Gagnier
       
      Bonjour,
      J'ai choisis la solution deux... mais voici ce que ça m'affiche :
      Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\magasin\index.php on line 33

      Merci.
      0
    2. louloute300 Messages postés 347 Statut Membre 29
       
      $produit = mysql_query("SELECT * FROM 'produit' ORDER BY 'produit' ASC LIMIT $nb, 9 "); //on sélectionne tout dans la table produit
      if (mysql_num_rows($produit)>$page+1){
      echo '<a href="?page=',$page+1,'"> Suivant >></a>';}

      essaie ca
      0
    3. Gagnier
       
      c'est pareil ...

      Si tu veux j'ai Team Viewer...

      Merci
      0
    4. louloute300 Messages postés 347 Statut Membre 29
       
      Je pense qu'il doit y avoir un pb la dedans:
      "SELECT * FROM 'produit' ORDER BY 'produit'" // et si tu remplacer par ca, juste pour essayer
      0
    5. Gagnier
       
      C'est pareil :S

      Tu connais le logiciel TeamViewer?
      0