Ranger une base de donnée

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 02:05

Bonjour,

voila je cherche la technique la moins lourde classer de client en fonction de leur points (de préférence par ordre décroissant). J ai dans ma BDD SQL (entre autres) une colonne nom et une colonne points

je fais donc ceci

$req = "SELECT nom, points FROM tbl_user";
$result = mysql_query($req);

mais ensuite je ne sais pas trop comment classer le tableau en fonction du nombre de point... je pourrait donner a un tableau les differente valeur de point, le classer sans remettre les $key dans l ordre et ensuite reconstruire un tableau pour les noms a partir des $key en désordre...

ya pas plus simple ?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 mars 2005, 02:20

Oh que si ! :lol:
$req = "SELECT nom, points FROM tbl_user ORDER BY points DESC";

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 02:43

héhé merci bien :)

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 02:55

euh j ai un petit probleme encore (oui je sais faut que j aprenne la gestion des bdd SQL ;))

voila j aai fait ce que tu as dit et ensuite j ai complété ainsi :

$result=mysql_query("SELECT pseudo, points FROM joueurs ORDER BY points DESC");
$result=mysql_fetch_array($result);
print_r($result);

et la ca me sort

Array ( [0] => nom1 [pseudo] => nom1 [1] => 3155.8571428571 [points] => 3155.8571428571 )

Hors j ai deux inscri dans ma bdd... pourquoi ne m en sort il qu un ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

08 mars 2005, 04:27

...parce que tu n'en as demandé qu'un ?

mysql_fetch_array() ne renvoit qu'un enregistrement, il faut l'appeler autant de fois que d'enregistrements. Voir la doc.

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 13:59

d'accord... ya t il alors une solution pour récupérer les données dans un tableau sans faire de boucle ?

Mammouth du PHP | 859 Messages

08 mars 2005, 14:31

Comment veux-tu parcourir une base de données sans boucle si tu as besoin de trouver plusieurs enregistrements?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 mars 2005, 15:00

ya t il alors une solution pour récupérer les données dans un tableau sans faire de boucle ?
Non.
Et d'ailleurs, quel en serait l'intérêt ? :?:

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 18:24

ok donc si j ai bien compris le seul moyen de récupérer le classement d'une personne c'est de faire ainsi ?

$result=mysql_query("SELECT pseudo, points FROM joueurs ORDER BY points DESC");
$i=1;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$var[$row[0]]=$i++;
}
echo $var[$pseudo];

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

09 mars 2005, 12:06

Chacun fait ses boucles comme il le souhaite, et ta manière me semble un peu complexe :
while ($ligne=mysql_fetch_object($result)) {
    $tabResult[$i]['titre']=$ligne->titre;
...
}