Comment créer un "top 5" ?

Eléphanteau du PHP | 41 Messages

24 août 2010, 08:36

Bonjours,

Je voudrais savoir comment on fait un emplacement pour un top 5 ?

de ce genre :

Tegilock Top5

....| Pseudo | Nb de rebirth
#1 | Joueur1 | 50
#2 | Joueur2 | 40
#3 | Joueur3 | 30
#4 | Joueur4 | 20
#5 | Joueur5 | 10

Connection a la database : include 'includes/config.php';

nom des base de donnée :
Pseudo = name
Nb de rebirth = reborns

dans la table : characters

quelqu'un peux maider ? svp je ne sais même pas par où commencer lol :?

P.S. Je suis du type visuel donc apprend plus facilement en regardant les chose en explorant,etc.

Mammouth du PHP | 661 Messages

24 août 2010, 08:53

donc, tu te connectes à la Bdd et en une requette (voir Unions)tu récupères les 5 résultats qui t'interesse (voir limit et where)

une fois obtenu, tu fais une boucle (while / foreach / for / ...) et à chaque boucle tu affiche un resultat !....

et voila, c'est fait !

Eléphanteau du PHP | 41 Messages

24 août 2010, 09:12

Non mais je voudrais que... hum comment l'expliquer...

bah de 1, je connais pas le php par cœur et comme je débute.....

je veux quelque chose qui va chercher les infos demandé de tout les character et vérifie ceux qui on le plus de reborns pour le mettre en haut de la liste en numéro 1 après c’est le second, etc.

ViPHP
ViPHP | 4039 Messages

24 août 2010, 09:18

Ce n'est pas une question de Php, mais de Mysql. Regarde du côté du tri, avec "ORDER BY" en Mysql.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 41 Messages

24 août 2010, 09:28

ok j'ai fait ma recherche mais le probleme c'est que

SELECT * FROM charater ORDER BY reborns

affiche tout le rataplan....

ma table character ne contiens pas juste le name et le nb de reborns il contiens au moins 10 autres truques donc...


c’est possible de lui dire de juste sélectionner le name et reborns ?
Modifié en dernier par dexon le 24 août 2010, 09:38, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

24 août 2010, 09:38

Avec ORDER tu peux spécifier le sens, donc tri par ordre décroissant comme cela tu auras les plus gros en haut.
Ensuite tu peux utiliser LIMIT pour spécifier au bout de combien d'enregistrement tu t'arrêtes.

Pour la sélection bien sûr... Tu n 'as pas du chercher loin. ^^
Il suffit de mettre le nom des champs à la place de l'étoile qui veut dire "tout".

Eléphanteau du PHP | 41 Messages

24 août 2010, 09:41

ah lol oui merci de me le rappeler ! que je suis bête ^.^

c’est quoi le truque de LIMIT ?

comme sa ? :

SELECT name,reborns FROM charater ORDER BY reborns LIMIT 5

ViPHP
xTG
ViPHP | 7331 Messages

24 août 2010, 09:48

Jackpot. =D>
Ou presque, car actuellement tu as les 5 derniers. :)

Eléphanteau du PHP | 41 Messages

24 août 2010, 10:02

les 5 dernier ???



sa c’est correct ? :

SELECT name,reborns FROM charater ORDER BY reborns DESC LIMIT 5


et une fois assemblé sa denerais :
<?php

include 'includes/config.php';
$result = mysql_query("SELECT name,reborns FROM charater ORDER BY reborns DESC LIMIT 5") 
or die(mysql_error());  

echo "<table border='1'>";
echo "<tr> <th>Name</th> <th>Reborns</th> </tr>";
while($row = mysql_fetch_array( $result )) {
	echo "<tr><td>"; 
	echo $row['name'];
	echo "</td><td>"; 
	echo $row['reborns'];
	echo "</td></tr>"; 
} 

echo "</table>";
?>
mais comment je rajoute les chifre 1. NOM, 2. Nom2, 3. NOM, etc. ?

ViPHP
xTG
ViPHP | 7331 Messages

24 août 2010, 11:10

$i = 1;
while($row = mysql_fetch_array( $result )) {
        echo "<tr><td>";
        echo $i . ". " . $row['name'];
        echo "</td><td>";
        echo $row['reborns'];
        echo "</td></tr>";
        $i++;
} 

Eléphanteau du PHP | 41 Messages

24 août 2010, 20:24

Merci :D