[PHP] Tableau dynamique

Résolu/Fermé
jeff - 3 mai 2008 à 14:19
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 - 8 mai 2008 à 12:19
Bonjour à tous,

je suis le webmaster d'un site à propos d'un championnat de football. Je suis actuellement en train d'en refaire le site web pour la seconde saison et un problème se pose lorsque je veux créer mon tableau. Ce tableau est en fait un classement des buteurs, un autre tableau qui sera avec le même code mais une requête différente pour le classement des passeurs. Merci de bien vouloir si vous savez, me répondre à ces deux interrogations, merci beaucoup :

1) J'aimerai que mon tableau soit numéroté automatiquement de 1 à 10 car avec ma requête, je ne vais obtenir que dis résultats au maximum.

2) Ensuite, j'aimerai que le premier par exemple ait dans le tableau une couleur de fond et de police différente que le second, etc...

Ici, l'adresse complète de la page où se trouve ce tableau http://jeffletourdi.free.fr/Nouveau/Pages/recompenses.php

Et voici le script utilisé :

$req = "SELECT * FROM stat_joueurs WHERE buts>=1 ORDER BY buts DESC, MJ ASC LIMIT 0,10";
$req2 = "SELECT * FROM stat_joueurs WHERE PD>=1 ORDER BY PD DESC, MJ ASC LIMIT 0,10";

$reponse = mysql_query($req, $dbh);
$reponse4 = mysql_query($req, $dbh);
$reponse2 = mysql_query($req2, $dbh);
$reponse3 = mysql_query($req2, $dbh);
$donnees = mysql_fetch_array($reponse);
$donnees2 = mysql_fetch_array($reponse2);
$i=0;

if ($reponse == FALSE)
{
echo "erreur de requête ($req) : ".mysql_error() ;
exit();
}
?>
<br>
<br>
<table width="600" align="center" class="menu3">
<tr>
<td width="60%" class="menu11">Classement des Buteurs</td>
<td width="20%" class="menu11">Matchs Joués</td>
<td width="20%"class="menu11">Nombre de Buts</td>
</tr>
</table>
<?php
if($donnees['buts']== ''){
echo"
<table width='600' align='center' class='menu4'>
<tr>
<td width='40%' align='center'>Aucun buteur pour le moment !</td>
</tr>
</table>
";}
else {
while ($donnees = mysql_fetch_array($reponse4))
{
echo "
<table width='600' align='center' class='menu4'>
<tr>
<td width='40%' align='center'>".$donnees['prenomJoueur']." ".$donnees['nomJoueur']."</td>
<td width='20%' align='center'>".$donnees['nomEquipe']."</td>
<td width='20%' align='center' style='color:blue'>".$donnees['MJ']."</td>
<td width='20%' align='center' style='color:red'>".$donnees['buts']."</td>
</tr>
</table> " ; }
}
?>
<br>
<br>
<table width="600" align="center" class="menu3">
<tr>
<td width="60%" class="menu11">Classement des passeurs</td>
<td width="20%" class="menu11">Nb de matchs joués</td>
<td width="20%"class="menu11">Nb de PD</td>
</tr>
</table>
<?php
if($donnees2['PD']== ''){
echo"
<table width='600' align='center' class='menu4'>
<tr>
<td width='40%' align='center'>Aucun passeur pour le moment !</td>
</tr>
</table>
";}
else {
while($donnees = mysql_fetch_array($reponse3))
{
echo "
<table width='600' align='center' class='menu4'>
<tr>
<td width='40%' align='center'>".$donnees['prenomJoueur']." ".$donnees['nomJoueur']."</td>
<td width='20%' align='center'>".$donnees['nomEquipe']."</td>
<td width='20%' align='center' style='color:blue'>".$donnees['MJ']."</td>
<td width='20%' align='center' style='color:red'>".$donnees['PD']."</td>
</tr>
</table>"; }
}
mysql_close();
?>
A voir également:

3 réponses

EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
3 mai 2008 à 14:35
Pardon mais j'ai pas envie de lire tout ton code, en revanche si j'ai bien compris tu demande à faire ça...

Numéroter la première colonne.

En fait dans chacune de tes lignes de tableau en HTML la première colonne sera rempli par un compteur. Ça fait un petit moment que j'ai plus fait de PHP donc pardonne moi d'éventuelles erreurs ou confusions avec d'autres langage mais ce qui importe le plus c'est l'algorithme .

for ($i=1;i<10;i++)
{
   echo("<tr>\n");
   echo("   <td> $i")
   echo("   </td>\n");
   echo("   <td> $NomJoueur");
   echo("   </td>\n");
   .......etc.......
   echo("</tr>");
}


Ça devrait te générer un tableau comme tu le veut en adaptant à tes besoins et à ton code bien sûr (et la condition de la boucle et peut-être pas tout à fait juste : il pourrait y avoir dépassement mais mes neuronnes se reposent là donc pour ça aussi tu verras).

Pour les couleurs de fond et la police il faut voir au niveau de HTML également :)
Bonne chance. :)
Les \n c'est pour le retour à la ligne et remarque aussi que j'ai mis des espaces dans les echo. C'est une habitude que j'avais quand je faisais du PHP pour qu'il me génère un code lisible avec une indentation acceptable. Tu pourras aussi remarquer que sur beaucoup de sites dont on attendrait volontiers du code propre, tout le source de la page HTML ou tout au moins une grande partie est sur une ligne de 15 km. En fait c'est parce qu'au niveau du PHP il n'y a pas de caractères de formatage tels que le retour à la ligne. Tu n'es pas obligé de prendre cette habitude mais je te la propose quand même. L'une ou l'autre manière de coder se justifie. :)
0
Bonjour à toi EminoMeneko et merci de ta réponse.

J'y ai pensé à ta solution et j'ai pensé que créer une variable $i avec comme valeur initiale comme 1 et puis comme ma boucle prend en compte la totalité de mon tableau.
Pour chaque enregistrement, il crée une ligne de tableau alors j'ai créé une colonne avec l'incrémentation $i++ .

Enfin, pour ce qui est du fond et de la police, je me demande si je mets un if avec comme condition $i=1 alors class du tableau = rouge etc...

Sinon merci de tes précisions concernant antislash n, je savais que l'antislash était un caractère d'échappement mais je ne savais pas que antislash n provoqué un retour à la ligne.

Parce que j'avais déjà réalisé du code pour un classement au niveau de la page championnat mais j'avais réalisé en fait plein de petits tableaux etc...donc très chiant à réaliser et un peut rustre loool

Merci à toi encore une fois.
0
bon ba finalement j'ai trouvé la solution après avoir bidouillé pendant quelques temps. Quelques if($i==1) {$class=menu4} elseif($i==2){$class=menu5} else{$class=menu3} .....

Merci à toi pour ton aide :D
0
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
8 mai 2008 à 12:19
De rien j'étais pas très disponible et je le suis encore moins ne serait-ce jusqu'au week-end...
0