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

Fermé
gagnier - 4 juin 2010 à 20:18
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 - 5 juin 2010 à 18:45
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
A voir également:

1 réponse

louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
5 juin 2010 à 15:59
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
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
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
5 juin 2010 à 17:04
$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
c'est pareil ...

Si tu veux j'ai Team Viewer...

Merci
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
5 juin 2010 à 17:54
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
C'est pareil :S

Tu connais le logiciel TeamViewer?
0