Affichage des resultat d'une requete sur plusieur pages

cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005 - 12 déc. 2004 à 14:27
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005 - 17 déc. 2004 à 14:18
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

cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
12 déc. 2004 à 14:29
Quel est la syntaxe a ajouter ?

Merci pour votre aide
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
12 déc. 2004 à 17:45
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)
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
12 déc. 2004 à 17:48
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
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
12 déc. 2004 à 18:21
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
12 déc. 2004 à 20:07
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
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
12 déc. 2004 à 20:44
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.
0
HecToR_coCHON Messages postés 34 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 27 octobre 2005
12 déc. 2004 à 21:23
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
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
12 déc. 2004 à 22:28
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
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
12 déc. 2004 à 22:48
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
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 déc. 2004 à 11:45
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 ;)
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
13 déc. 2004 à 13:39
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
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 déc. 2004 à 18:57
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 )
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
13 déc. 2004 à 19:15
Non hélas ca ne marche toujours pas je desespere mais merci pour ton aide
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 déc. 2004 à 20:09
Il faudrait demander à des gars qui s'y connaissent plu parce que je suis aussi un debutant.
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
14 déc. 2004 à 00:56
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
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
14 déc. 2004 à 23:30
Je n ai toujours pas touve de solution. aidez moi s'il vous plait
0
ocalimero Messages postés 12 Date d'inscription vendredi 7 mai 2004 Statut Membre Dernière intervention 15 décembre 2004
15 déc. 2004 à 13:49
dans cette instruction :
echo '.' $x/5 .'';
les ' sont mal placées.
Essayes plutôt :
echo ''. $x/5 .'';
0
HecToR_coCHON Messages postés 34 Date d'inscription lundi 15 novembre 2004 Statut Membre Dernière intervention 27 octobre 2005
15 déc. 2004 à 15:46
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
15 déc. 2004 à 15:53
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
0
cs_zizou94 Messages postés 83 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 29 avril 2005
17 déc. 2004 à 14:18
A l'aide je n ai toujours pas trouver de solution

merci
0
Rejoignez-nous