Afficher un nombre de valeur celon une donnée

Résolu/Fermé
cdavid - 11 nov. 2012 à 13:09
 cdavid - 11 nov. 2012 à 17:53
Bonjour

je voudrais seulement afficher les 10 premiers membres qui ont le plus de points par ordre décroissant mais je ne sais pas comment faire:
Mon code telle que je les écrit pour le moment:

<?php
mysql_connect("localhost", "peudo", "mot de passe"); // Connexion à la base de données
 mysql_select_db("nom db"); // Sélection de la base de données 

// lancement de la requete
$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl group by login');  
 
 while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau
 {
?>
<center>
<?php echo $donnees['login'];?> | 
<?php echo $donnees['points'];?>Points <br /> 
<?
 }	
 mysql_close(); // On oubli pas de déconnecter la base de données
?>


Si quelqu'un pouvais me montrer car sa je ne vois pas et ne trouve pas comment on fait

Merci d'avance

5 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 13:28
bonjour

SELECT champ1,champ2 FROM table ORDER BY points DESC LIMIT 10
0
j'ai encore une quetion y a un login que je ne veu pas afficher comment je peu faire?
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 14:39
SELECT champ1,champ2 FROM table WHERE login != 'loginnonaffiché' ORDER BY points DESC LIMIT 10
0
J'ai essayé comme ceci:

$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl group by login WHERE login != admin  ORDER BY points DESC LIMIT 10 '); 


Comme ceci ça ne fonctionne pas alors que comme ci-dessous:

$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl group by login ORDER BY points DESC LIMIT 10 ');  


Mais par contre on voit le login admin

Merci d'avance
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 15:01
ton group by ne sert a rien d'autre qu'a prendre des ressources là

$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl WHERE login != 'admin' ORDER BY points DESC LIMIT 10 ');

mais un conseil apprend a utiliser et utilise pdo et des requêtes préparé ça n'a que des avantages
0

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

Posez votre question
C'est quoi pdo?

ça ne marche pas j'ai une erreur:
$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl WHERE login != admin ORDER BY points DESC LIMIT 10 '); 
 
 while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau
 {


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.501/moneycpm/www/concours.php on line 15


J'ai essayé avec les guillemets ou sans c'est pareil.

Merci d'avance
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 15:58
$reponse = mysql_query ('SELECT login, sum(point) as points FROM 11_membres_tbl WHERE login != \'admin\' ORDER BY points DESC LIMIT 10 ');

j'ai oublié les \ et toi tu as enlevé les quotes
0
maintenant sa affiche plus qu'une ligne
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 17:08
mais en fait tu veux faire quoi avec cette requête ?
0
Alors je veux que sa aille dans ma base de donnée qu'elle affiche le pseudo et les points des 10 meilleur mais que parcontre que sa n'affiche pas le pseudo admin
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
11 nov. 2012 à 17:42
$reponse = mysql_query ('SELECT login,point FROM 11_membres_tbl WHERE login != \'admin\' ORDER BY point DESC LIMIT 10 ');

enlève ",point" si tu n'a pas besoin des points
0