Comment faire pour afficher cette requete sur plusieur pages ?
cs_skyman272
Messages postés34Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention26 novembre 2007
-
17 oct. 2005 à 21:08
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
18 oct. 2005 à 09:20
Bonjour, question pour les pros du PHP
La requette dans le code ci dessous fonctionne mais le resultat devrait s'afficher sur plusieurs pages. 5 résultat par page. Or ça ne marche pas j'ai tous les résultats qui s'affiche toujours sur la meme page.
Je ne suis pas un cador du php. Si quelqu'un de génial arrivait à trouver l'anomalie dans mon code...
Merci
// Connnexion à la base
mysql_select_db($database_fichier, $fichier) or die(mysql_error());
// Parametres de la requete
$varRegion = $select;
$varType = $select2;
$nb_rep_pages=5;
// Requete SQL
if(empty($page)) $page = 1;
if(empty($fin)){
if($varType == Tous)
$sql = "SELECT *
FROM Fiche_produit
WHERE Fiche_produit.Region ='$varRegion'
ORDER BY Identite";
else
$sql = "SELECT *
FROM Fiche_produit
WHERE Fiche_produit.Region ='$varRegion'
AND Fiche_produit.Type ='$varType'
ORDER BY Identite";
}
// Déclaration de la variable début
$debut = ($page - 1) * $nb_rep_pages;
$nbpages = ceil($fin / $nb_rep_pages);
// Interrogation de la base
$result = mysql_query($sql, $fichier) or die(mysql_error());
// Nombre de lignes de résultat
$totalRows = mysql_num_rows($result);
if ($totalRows == 0)
{
echo "La recherche n'a retourné aucun résultat
";
}
else
{
echo "
Résultat de la recherche : $totalRows produits.
Secteur |
Type |
Prix de vente du bien |
Présentation |
Photo |
Accès |
jnbrunet
Messages postés258Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention13 novembre 2012 18 oct. 2005 à 00:37
Salut,
voila ce donc j'ai compris:
tu ajoutes en debut de page: $nb= 5;
if(isset($_GET['start'])) {$start = $_GET['start'];} else {$start=0;}
ensuite,
remplace: if($varType == Tous)
$sql = "SELECT *
FROM Fiche_produit
WHERE Fiche_produit.Region ='$varRegion'
ORDER BY Identite LIMIT ".$start.",".$nb;
else
$sql = "SELECT *
FROM Fiche_produit
WHERE Fiche_produit.Region ='$varRegion'
AND Fiche_produit.Type ='$varType'
ORDER BY Identite LIMIT ".$start.",".$nb;
}
ajoute en bas de ce que je t dis de remplacer:
$result=mysql_query("SELECT COUNT(*) FROM `Fiche_produit` WHERE Fiche_produit.Region ='$varRegion'") OR die("Comptage Impossible");
$row = mysql_fetch_row($result);
Ensuite, tu te fais 2 liens, 2 boutons, comme tu veux, qui vont
renvoyer à la même page un compteur, que tu vas utiliser dans LIMIT
justement.
Imaginons que tu pagines de 10 en 10.
Pour aller vers la droite, tu auras $compteur +=10, vers la gauche :
$compteur -=10 (sachant qu'il ne doit pas descendre en dessous de 0).
Et tes liens vont simplement l'envoyer à la page, et la requête dans ta
page va s'en servir dans la requête sur LIMIT (avec un test
d'existence).