Affichage des resultat d'une requete sur plusieur pages

Signaler
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005
-
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005
-
Bonjour a tous

Voila je suis toujours sur la programmation de mon premier site et j ai un souci. Je souhaiterai limiter l'affichage de mes résultat sur ma page a 15 résultat et afficher les 15 résultats suivant sur la page suivante et ajouter en bas de la page le numero de la page. ex : 1 I 2 I 3 I 4
J'ai chercher partout des infos mais je n arrive pas a les mettre en application. Je suis vraiment un débutant et c'est trés dure donc si quelqun pouvait m'aider ce serait gntil de sa part.
Ma requete pour l affichage des articles est la suivante :

<?
$connexion = mysql_connect( "localhost", "root", "");
$base =mysql_select_db( "ifd");

$reqArticleSousCategorie ="SELECT A.refFournisseur, A.designation, A.descriptif, A.prixHt, M.libelleMarque, refArticle FROM ARTICLE A, MARQUE M WHERE A.idMarque = M.idMarque AND A.idSousCategorie = " . $idSousCategorie;
$resultat =mysql_query( $reqArticleSousCategorie);
echo "<table>";
echo "<tr><td> Ref. Fournisseur </td><td>Designation</td><td>Marque</td><td>Prix HT</td></tr>";
while( $ligne =mysql_fetch_row( $resultat))
{
echo "<tr onMouseOver="this.bgColor='#CE638D';" bgcolor='#ffffff' onMouseOut="this.bgColor='#ffffff';">";
echo "<td>$ligne[0]</td>";
echo "<td>$ligne[1]</td>";
echo "<td>$ligne[4]</td>";
echo "<td>".$ligne[3]." €</td>";
echo "</tr>";
}
?>

S'il vous plait aidez moi car j y est mis tous mes effort et je n y arrive pas

Merci à vous

20 réponses

Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Quel est la syntaxe a ajouter ?

Merci pour votre aide
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Il faut te servir de l'option LIMIT dans ta requete.

<?php
$debut="0";
$nombre="15";
$requete="SELECT a,b,c FROM table WHERE tes_conditions LIMIT" . $debut . $nombre;
$resultat=mysql_query($requete)
?>
Ce code te permet de selectionner dans $resultat les lignes de 0 à la ligne 14 ( le premier chiffre indique la ligne ou tu commence a selectionner, la deuxième te permet de dire combien de ligne tu séléctionne )

Pour la première page ta requète doit être :
"SELECT a,b,c FROM table WHERE tes_conditions LIMIT 0,15"
Pour la deuxième :
"SELECT a,b,c FROM table WHERE tes_conditions LIMIT 15,15"
Pour la troisième :
"SELECT a,b,c FROM table WHERE tes_conditions LIMIT 30,15"

etc.. J'éspère que tu as compris. :big)
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

si je comprend bien ce que tu me dit il faut que je crée plusieur page mais moi je veut me sevir de la meme page .je veut qu il réutilise la page afficherarticle.php

Est ce possible ?

merci
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Non tu peux garder la même page, il faut juste faire varier les variables $debut et $nombre, enfin dans ton cas ce n'est même pas la peine de faire varier $nombre car tu veux toujours des pages avec cinq resultats.
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Je pense que tu n a pas exactement compris ma question.
ex : j effectue une requete et le resultat de cette requete me donne 200 articles mais dans un souci de confort visuel je veux qu il en affiche 15 puis 15 autre dans la meme page et ainsi de suite avec un lien en bas de la page avec : resultat 1 à 15 I 16 à 31 I 31 à 46 et ainsi de suite. Car j ai beaux regarder ta syntaxe mais je ne comprend pas comment celle ci peut gerer ma demande.

Si vous avez une reponse pouvez vous m aider a rediger mon code et m indiquer l emplacement ou je doit l inserer. Je suis debutant et j ai du mal a tout comprendre.

Merci pour votre aide
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Ma syntaxe ne résou pas tout ton problème mais pertmet déja de ne selectioner que 15 lignes, après faut faire varier la variable justement ^^.
Pour l'affichage des pages I1II2II3I faut que tu trouve tout seul lol

Enfin, comme tu veux, si tu veux pas de ma solution t'as le droit lol
Ce serait bien que quelqu'un d'autre donne son avi pour voir.
Messages postés
34
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
27 octobre 2005

LA solution de socomajor est bonne. Après il suffit juste que tu fasse un script qui cré les pages à consulter style 1 2 3 4 5 et qui a chacune associe le nombre de départ.

//Initailise les variables nécéssaires
$debut= $_GET['debut'];
$nombre= $debut + 5;

//Ton code

//compte le nombre d'article
$reqArticleSousCategorie ="SELECT A.refFournisseur, A.designation, A.descriptif, A.prixHt, M.libelleMarque, refArticle FROM ARTICLE A, MARQUE M WHERE A.idMarque = M.idMarque AND A.idSousCategorie = " . $idSousCategorie;
$resultat =mysql_query( $reqArticleSousCategorie);
$nbrelement = mysql_num_rows($resultat) ;

//Affiche le menu permettant de selectionner la page désirée
for($x=0;$x<nbrelement;$x = $x+5) {
echo '.' $x/5 .'';
}



Je pense que ca va marcher
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

merci pour votre aide. lors de l'execution de ma requete j ai un erreur sur cette ligne :

echo '.' $x/5 .'';


Auriez vous une reponse merci

merci pour votre aide aussi rapide
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

si je suis pas totalement stupide et si ce satané langage de php ne ma pas completement liquéfié le cerveau mon code devrait ressembler a ceci :

$debut= $_GET['debut'];
$nombre= $debut + 5;

$connexion =mysql_connect( "localhost", "root", "");
$base =mysql_select_db( "ifd");
$reqArticleSousCategorie ="SELECT A.refFournisseur, A.designation, A.descriptif, A.prixHt, M.libelleMarque, refArticle FROM ARTICLE A, MARQUE M WHERE A.idMarque = M.idMarque AND A.idSousCategorie = " . $idSousCategorie;
$resultat =mysql_query( $reqArticleSousCategorie);
echo "<table>";
echo "<tr><td>Ref. Fournisseur             


La requete me renvoie une erreur a cette ligne :

echo '.' $x/5 .'';


Auriez vous une idée

Merci a vous
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Je suis pas sur mais je crois qu'il faut que tu mette des " et non des ' Mais bon je suius pas sur lol, moi aussi je suis debutant ( ça fait que 3 jour que je fais du php lol )
Aparemment t'as vraiment pas envi d'essayer ma technique. lol

Pour vous servir :D Socomajor ;)
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Ce n est pas que je ne veuille pas utiliser ta technique socomajor mais c est que je suis tellement un novice que je n arrive pas a adapter ton code dans ma page, helas je ne comprend je ne sais pas ou le placer.

Si tu a une idée fait moi signe

Merci
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Ok ,alors a la place de :
$reqArticleSousCategorie ="SELECT A.refFournisseur, A.designation, A.descriptif, A.prixHt, M.libelleMarque, refArticle FROM ARTICLE A, MARQUE M WHERE A.idMarque = M.idMarque AND A.idSousCategorie = " . $idSousCategorie;

tu mets :

$reqArticleSousCategorie ="SELECT A.refFournisseur, A.designation, A.descriptif, A.prixHt, M.libelleMarque, refArticle FROM ARTICLE A, MARQUE M WHERE A.idMarque = M.idMarque AND A.idSousCategorie = " . $idSousCategorie LIMIT". $debut.",15" ;

Voila alors après dans ta variable $resultat tu n'aura pas toutes les lignes mais les 15 premières. Après il faut recharger la page en faisant changer la variable $debut ( tu peux bien sur renommer la variable $debut comme tu veux )
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Non hélas ca ne marche toujours pas je desespere mais merci pour ton aide
Messages postés
56
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
9 août 2005

Il faudrait demander à des gars qui s'y connaissent plu parce que je suis aussi un debutant.
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Ce script present sur le site m a l'air excellent et repond exactement a mes attentes mais helas comme toujour je n arrive pas a le mettre en application avec mon code. Sivous pouviez y jeter un oeil et m aider ca serait super.

http://www.phpcs.com/codes/LISTAGE_DUNE_REQUETE_SUR_PLUSIEURS_PAGES/25843.aspx

Merci
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Je n ai toujours pas touve de solution. aidez moi s'il vous plait
Messages postés
12
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 décembre 2004

dans cette instruction :
echo '.' $x/5 .'';
les ' sont mal placées.
Essayes plutôt :
echo ''. $x/5 .'';
Messages postés
34
Date d'inscription
lundi 15 novembre 2004
Statut
Membre
Dernière intervention
27 octobre 2005

Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Je n aiplus de message d erreur mais la requete n est pas bonne il ne me lilite pas le nb de resultat et il ne m affiche de lien pour les pages suivantes ( 1I2I3I4I5I6I7 ).

A l aide

Merci
Messages postés
83
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

A l'aide je n ai toujours pas trouver de solution

merci