steph13 Posté 3 Décembre 2005 Posté 3 Décembre 2005 (modifié) B'soir le Hub, Voila mon petit soucis : Je suis en train de mettre en pplace un classement pour les sites sur mon portail. La première partie partie avec la mise en place des votes, cookies, et tout le toutim se passe très bien. La où je coince, c'est sur la partie finale: l'affichage des 10 premiers site du classement. Alors, en fait, que je vous exlique vite fait: J'ai deux tables. La première me sert à recupérer les logins des membres. Avec ça, je vais dans la table ou sont stockés les points et je recupère tous les points, et je les additionnent. Ensuite, je voudrais, àl a sortie de la requête, faire un tableau qui m'affiche les 10 premiers resultats uniquements. Voila où j'en suis avec mon code. J'ai regardé dans mon bouquin php, mais j'avoue ne pas trop m'en sortir. $tablo = array();$vote_final=0;$sql = 'SELECT login FROM table1';$result = mysql_query($sql);while ($data = mysql_fetch_array($result)) { $log=$data['login']; $sql2 = ' SELECT * FROM table2 where login = "'.$log.'" '; $result2 = mysql_query($sql2); while ($data2 = mysql_fetch_array($result2)) { $login=$data2[login]; $tablo[$vote_final]=$vote_final + $data['etoile']; }} A vot' bon coeur m'sieur dames Modifié 3 Décembre 2005 par steph13
Sarc Posté 3 Décembre 2005 Posté 3 Décembre 2005 Salut ! Tu pourrais faire ça en une seule requète SQL... Je connais pas la structure de ta BDD, mais bon, en imaginais que tu aies : membre : id pseudo points id id_membre points Tu peux faire une requète du genre : SELECT a.pseudo, sum(b.points) AS point_tot FROM membre a, points b GROUP BY a.pseudo ORDER BY point_tot LIMIT 0,10 J'ai pas testé, mais un truc du genre pourrait être pas mal Je sais plus s'il faut mettre group by avant ou après order by... Ensuite tu as directement ton tableau dans l'ordre
steph13 Posté 3 Décembre 2005 Auteur Posté 3 Décembre 2005 (modifié) Ah oui tiens, pas idiot... Je vais regarder cela. [edit ]: je vire ma petite betise que j'avais ecrite.. j'avais po bien lu ta requête [/edit] Bon, je test cela de suite, et je reviens par ici. Merci Modifié 3 Décembre 2005 par steph13
steph13 Posté 3 Décembre 2005 Auteur Posté 3 Décembre 2005 Alors, en effet la requête fonctionne.... ou presque. Car en fait avec SUM() il m'additonne TOUS les points présent dans la table, alors que j'ai besoin de l'addition des points par membre...
Sarc Posté 3 Décembre 2005 Posté 3 Décembre 2005 Hum, essaye de remplacer le GROUP BY que je t'ai donné par GROUP BY (b.id_membre)...
steph13 Posté 3 Décembre 2005 Auteur Posté 3 Décembre 2005 Hum, na. C'est pas mieux. La, la requête me renvoi 10 fois le meme user avec à chaque fois le même total....
Sarc Posté 3 Décembre 2005 Posté 3 Décembre 2005 Pourrais-tu donner la structure exacte de ces tables ? C'est le genre de requètes qui marchent chez moi... Alors si tu me donnes précisément ce que tu as, je pourrai mieux voir
steph13 Posté 3 Décembre 2005 Auteur Posté 3 Décembre 2005 (modifié) [edit] C'EST BON !! Ca marchouille !!!! Je sais pas ce que j'avais fait, mais ca le fait !!!! Par contre, je seraitpar contre l'explication que je souhaitais au départ sur la transmission des result de mysql_fetch_array vers un tableau. En tout cas, Merci sarc!! [/edit] Modifié 3 Décembre 2005 par steph13
Sarc Posté 3 Décembre 2005 Posté 3 Décembre 2005 Je me disais bien que c'était pas normal que ça ne marchâte pas... Bon tant mieux si ça marche alors, et à la prochaine EDIT : Pour le tableau de résultats : echo while($donnee=mysql_fetch_array($result)){extract($donnee);$tablo[$pseudo] = $point_tot;} C'est ça que tu veux ? Si je comprends bien...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant