Aller au contenu

[resolu]Tableaux, ca coince....


Sujets conseillés

Posté (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é par steph13
Posté

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 ;)

Posté (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é par steph13
Posté

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...

Posté

Hum, essaye de remplacer le GROUP BY que je t'ai donné par GROUP BY (b.id_membre)...

Posté

Hum, na.

C'est pas mieux.

La, la requête me renvoi 10 fois le meme user avec à chaque fois le même total....

Posté

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 :P

Posté (modifié)

[edit]

C'EST BON !! Ca marchouille !!!! :lol: 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é par steph13
Posté

Je me disais bien que c'était pas normal que ça ne marchâte pas... :P

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...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...