[RESOLU] Numérotation automatique d'un tableau

Filipe
Invité n'ayant pas de compte PHPfrance

08 avr. 2005, 10:45

Bonjour,
je suis actuellement en train de modifier un script de Top 50 des sites.
Comme tous les Top 50, le tableau doit être numéroté du 1er à xx sites. Or, celui que j'ai ne dispose pas de cette numérotation.
J'aurais voulu connaître le code PHP pour faire cette numérotation automatiquement dans le tableau.
Ex :
1. Altavista
2. Google etc...

Merci pour votre aide.

Eléphant du PHP | 281 Messages

08 avr. 2005, 10:54

Solu
Je suppose que tu as un compteur de clique qui envoi une variable a ta bdd ben dans ta requete sql tu dois avoir un truc du genre :
<?
$var=mysql_query("SELECT DISTINCT nomsite FROM site ORDER BY compteclique DESC");/*On effectue la requete dans la table pour apeller les différents sites et cliques, le DESC va faire le classement dans l'ordre décroissant*/
$rows=mysql_num_rows($var);/*On calcul combien de site il y  a dans la base*/
for ($i=0;$i<=$rows)/*Pour tout les site on va afficher*/
{
  $tab=mysql_fetch_array($var);/*on crée un tableau avec le resultat de la requete*/
  $nomsite=$tab['nomsite'];/*on recupere les données du tableau*/
  echo($i+1 . "." . $nomsite);/* on affiche le numero et le nom du site*/
}

Mais sache que ta requete differe selon tes tables si tu veux un aide plus précis faut que tu nous files tes tables !

voila enjoy ;)

Filipe
Invité n'ayant pas de compte PHPfrance

08 avr. 2005, 11:06

La table (toptest) est composée de :
ID
DATE
PSEUDO
MDP = mot de passe
EMAIL
NOM_SITE
URL_SITE
URL_BAN
DESCRIPTION
COUNT_IN
COUNT_OUT
IP
TOP

Pour voir à quoi ressemble le site Clique ici

Comme tu peux le voir, il n'y pas de colonne à gauche qui numérote le nombre de site présent et qui évalue le classement. Mon but est d'ajouter une colonne à gauche (déjà faite) puis intégré la numérotation.

Eléphant du PHP | 281 Messages

08 avr. 2005, 11:26

ton champ TOP contient sa place dans le classement ??? ou contient t'il autre chose enfaite ?

<? 
$var=mysql_query("SELECT DISTINCT * FROM toptest ORDER BY count_in DESC");/*On effectue la requete dans la table pour apeller les différents sites et cliques, le DESC va faire le classement dans l'ordre décroissant*/ 
$rows=mysql_num_rows($var);/*On calcul combien de site il y  a dans la base*/ 
echo("<TABLE>");
for ($i=0;$i<=$rows)/*Pour tout les site on va afficher*/ 
{ 
  $tab=mysql_fetch_array($var);/*on crée un tableau avec le resultat de la requete*/ 
  $nom_site=$tab['nom_site'];/*on recupere le nom du tableau*/
  $id_site=$tab['id_site'];/*on recuepre l'id*/ 
echo("<TR><TD>" . $i+1 . "</TD><TD>" . $nom_site . </TD><TD>...");
}
echo("</TABLE>");



} 

voila la demarche que j'aurais perso après c'est toi qui vois :)

Filipe
Invité n'ayant pas de compte PHPfrance

08 avr. 2005, 11:30

Le code que tu ma donné me donne l'erreur suivante :
Parse error: parse error, expecting `';'' in c:\program files\easyphp1-8\www\topclick\index.php on line 73


Autrement TOP indique uniquement le n° 1 du classement
N°1 = oui
N°2 = non
N°3 = non etc...

Eléphant du PHP | 281 Messages

08 avr. 2005, 11:33

oops je viens de voir l'erreur regarde dans le for :
for ($i=0;$i<=$rows; $i++)
voila j'avais oublier un truc dans le for, mais le code que je t'ai filer n'ai pas tout fais non plus te reste a regarder comment placer les champs recup mais bon c'est presque fini disons que si tu a compris mon code ca sera sans prob ;)