Requete pour afficher les meilleurs

[Résolu]
Signaler
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjours à tous !

Bon voila j'explique mon problème : je souhaiterai afficher les 3 membres qui possède le plus de points sur mon site.

je ne sais pas quel requete utiliser... mais les point son comptabiliser dans la table "membres" / champ "score" et je dois afficher en fait ce qui on le plus de point en commançant par :

le 1er
le 2ème
le 3ème

Si qqun saurait comment je pourrai manager sa.

Merci d'avance et A+

http://neovalpox.dyndns.org

34 réponses

Messages postés
96
Date d'inscription
mardi 2 avril 2002
Statut
Membre
Dernière intervention
7 août 2005

le probleme vient de cetet partie la



while($nb=mysql_fetch_object($res));



{
echo '';
echo $nb['pseudo'].'&nbsp'.$nb['score'];
echo '';
}


essaye en enlevant le ; a la fin de ton while ca devrait donner ca :






while($nb=mysql_fetch_array($res)) {




echo '';


echo $nb['pseudo'].'&nbsp'.$nb['score'];


echo '

';





}


effet garantie !!!!
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
salut



select score from membres order by score desc

[mailto:cyberscorp2004@msn.com MSN] [mailto:frop01@yahoo.fr YAHOO]

Membre du club CodeS-SourceS
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
utilises LIMIT 1,3 pour selectionner que les trois premières records

[mailto:cyberscorp2004@msn.com MSN] [mailto:frop01@yahoo.fr YAHOO]

Membre du club CodeS-SourceS
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

LIMIT 0,3 ou LIMIT 3
plutot.

LIMIT 1,3 va afficher les resultats de 2 a 4.
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Voila mon scritp (il ne marche pas encore je sais pas pk) :

<?php
$db = mysql_connect('********','********','********') or die ("erreur de connexion");

mysql_select_db('membres',$db) or die ("erreur de connexion base");


$req='SELECT score FROM membres ORDER BY score DESC';
$res=mysql_query($req) or die ("erreur requête");
$nb=mysql_fetch_array($res);


{
echo ;
echo $nb;
echo ;
}
?>
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

Voila mon scritp (il ne marche pas encore je sais pas pk) :

<?php
$db = mysql_connect('********','********','********') or die ("erreur de connexion");

mysql_select_db('membres',$db) or die ("erreur de connexion base");


$req='SELECT score FROM membres ORDER BY score DESC';
$res=mysql_query($req) or die ("erreur requête");
$nb=mysql_fetch_array($res);


{
echo "";
echo $nb;
echo "";
}
?>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
hello,
corrections sur ces lignes :

$req='SELECT score FROM membres ORDER BY score DESC LIMIT 3';

echo $nb['score'];

sans compter le html...mais bon, ca je n'ai pas envie! En bref : strong, font...a bannir (balises depreciees).
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

bon j'ai essayer avec les corrections que tu m'a donné mais en vain. il me dis que c'est une erreur de requete.

Meme en enlevant les balise HTML sa ne change rien.
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

a non j'ai rien dis. now sa marche (erreur de ma pars dans le nom de la table) mais il m'affiche uniquement le score le plus élevé. et non pas celui des 3 joueur les plus fort... qqun aurai une solution ?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Essaye ca ptete :

$req='SELECT score FROM membres LIMIT 3 ORDER BY score DESC';

mais je doute....il n' y a pas de raison qu'il ne recupere que le 1er enregistrement.
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

non sa ne marche toujours pas. il ne me récupere uniquement le premier enregistrement.
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

meme si j'enlève la partie "LIMIT 3" sa ne change rien.
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

et lorsque je change le chiffre après LIMIT (exemble "LIMIT 2") il ne m'affiche pas le meme enregistrement.


J'ai modifier ma requete comme ceci :

'SELECT pseudo,score FROM fk_membres ORDER BY score DESC LIMIT 3'
// pour selectionner le pseudo , puis le score du membre

echo $nb['pseudo'];
echo "&nbsp";
echo $nb['score'];
// pour afficher le pseudo avec un espace, puis le score du membre

mais sur ma page il ne m'affiche que le membres avec le plus de point... je ne comprend pourquoi.

Si qqun peu m'aider la dessus.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
salut,

il faut faire une boucle while
essai ça :

<?php
$db = mysql_connect('********','********','********') or die ("erreur de connexion");

mysql_select_db('membres',$db) or die ('erreur de connexion base');


$req='SELECT score FROM membres ORDER BY score DESC LIMIT 3';
$res=mysql_query($req) or die ("erreur requête");
while($nb=mysql_fetch_array($res))


{
echo '';
echo $nb;
echo '';
}
?>

et comme t'a dit malalam (que je salut au passage), met toi aux normes

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

erf meme avec la boucle while sa ne marche pas... je sais vraiment plus quoi faire...
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
euh, pardon, le code avec le changement de ta requete

<?php
$db = mysql_connect('********','********','********') or die ("erreur de connexion");

mysql_select_db('membres',$db) or die ('erreur de connexion base');


$req='SELECT pseudo,score FROM fk_membres ORDER BY score DESC LIMIT 3';
$res=mysql_query($req) or die ("erreur requête");
while($nb=mysql_fetch_array($res))


{
echo '';
echo $nb['pseudo'].'&nbsp'.$nb['score'];

echo '';
}
?>


voila, maintenant ca devrait fonctionner

@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
ca te met quoi comme erreur ?

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
48
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
22 novembre 2007

ben avec la boucle while il ne m'affiche rien du toute.

si jamais c'est sur http://neovalpox.dyndns.org/ puis une fois que tu es inscrit tu vas dans le menu c'est ecrit les 3 meilleurs membres.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
ben ta quelque truc a revoir sur ton site lol

quand on se trompe dans l'inscription y a des messages d'erreur

une page erreur 404 quand on se logue mal

bref va falloir faire quelque chose a mon avis


essai avec la clause WHERE ta requete !!!

comme ceci :

$req='SELECT pseudo,score FROM fk_membres WHERE 1 ORDER BY score DESC LIMIT 3';

si ce n'est pas ça, test la requete directement dans phpmyadmin ou autre

pour voir si elle est bonne


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
et tu a aussi oublié le point virgule a la fin de ton &nbsp;

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet