Bonjour,
Mon titre n'étant pas très parlant, je vais tenter d'être le plus explicite possible.
Déjà, mon problème concerne le php et le mysql.
Je suis en train d'écrire un script de topliste (vous savez, ces pages où les sites amenant le plus de visites vers cette page sont les mieux classés...).
J'ai finit de l'écrire, mais un problème persiste.
Pour afficher le classement de ces sites, j'effectue une boucle, celle ci-dessous :
Le code n'est pas très clair, je sais que j'aurais pu faire un extract pour ne pas trimballer un tableau, mais là n'est pas le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for($i=1; $i<$r+1; $i++){ $b=mysql_query("SELECT nb, nom, url, id FROM task44 WHERE id!=$num AND nb<=$c[1] order by nb desc"); $c=mysql_fetch_array($b); echo"<p><b>$i.</b> $c[1] : <a href=$c[2] target=blank>$c[2]</a><br>"; $num=$c[3]; }
D'ailleurs, si vous trouvez des petites erreurs de syntaxe ou dans les noms des colonnes, je précise que j'ai renommé les noms pour que cet exemple soit plus parlant, alors j'ai peut etre fait une faute.
Bon, soyons concis, le but de ce code (pour ceux qui ne le trovent pas assez clair) est d'afficher les sites de la topliste par ordre décroissant en fonction donc du nombre de visites qu'ils ont apportées, ici inscrit dans la colonne "nb" de la table mysql.
Ces sites sont définis par leut url ("url"), leur titre ("nom"), leur nombre de visites apportées ("nb"), et un nombre ("id"), qui est en fait un "autoincr" de la table mysql, qui permet de classer les sites en fonction de leur date d'ajout, ou en tout cas d'avoir un nombre différent associé à chaque site.
Bon bon, ce code marche, sauf que lorsque plus de 2 sites ont apporté le même nombre de visites (donc plus de 2 sites dont le "nb" est égal), eh bien seuls 2 de ces sites s'affichent plusieurs fois. (exemple ici : http://moneyworld.ptc4ever.com/index.php?p=partenaires les sites eurosmaker et ptc4ever ne devraient etre affichés qu'une seule fois chacun).
Dans l'espoir que quelqu'un comprenne mon code et ai lu cet article jusqu'au bout, je vous remercie d'avance, car pour moi c'est insoluble :/
Bien à vous,
Pioul
Partager