Mettre et afficher une condition

Eléphant du PHP | 69 Messages

26 avr. 2008, 16:50

Bonjour tout le monde,

Voilà une partie de mon code
  <?php

    $cnx = mysql_connect("");
    $db = mysql_select_db("chess32");
    $sql = "select nom, prenom, titre, club, licence, elo, jour, mois, année, sexe, tournoi, mail, paiement from marathon08 where tournoi like'17e Marathon' order by elo desc";
    $requete = mysql_query($sql, $cnx);
    $count = mysql_num_rows($requete);

echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
echo( "<tr>
<td><div align=\"center\">nom</div></td>
<td><div align=\"center\">prenom</div></td>
<td><div align=\"center\">titre</div></td>
<td><div align=\"center\">club</div></td>
<td><div align=\"center\">licence</div></td>
<td><div align=\"center\">elo</div></td>
<td><div align=\"center\">Date de Naissance</div></td>
<td><div align=\"center\">Catégorie</div></td>
<td><div align=\"center\">Sexe</div></td>
<td><div align=\"center\">mail</div></td>
<td><div align=\"center\">paiement</div></td>
</tr>" );

//choix de la catégorie
   $aa= 'vétéran';
   $bb= 'junior'; 
   if($année<=1976) {$categorie="$aa";} 
   if($année>=1977) {$categorie="$bb";} 
    

while( $result = mysql_fetch_array( $requete ) )
{
echo( "<tr>\n" );
echo( "<td><div align=\"center\">".$result["nom"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["prenom"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["titre"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["club"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["licence"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["elo"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["jour"]." / ".$result["mois"]." / ".$result["année"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$categorie."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["sexe"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["mail"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["paiement"]."</div></td>\n" );
echo( "</tr>\n" );
}
 
echo( "</table><br>\n" );
?>
Alors au niveau du choix de la catégorie, j'aimerais que en fonction de l'année, j'affiche une catégorie (vétéran, junior ...)
Et là, sur mon code, il m'affiche tout le temps vétéran, alors que j'ai des année avant et après 1976.
Ou est le souci ? j'arrive pas à trouver

Merci

Mammouth du PHP | 19672 Messages

26 avr. 2008, 17:03

Peut-être bien parce que tu n'initialises d'abord jamais la variable $annee et ensuite parce que tu initialises $categorie AVANT la boucle au lieu de tester selon la ligne à chaque tour de boucle.

Et un petit ménage du code donnerait ceci :
<?php
$cnx     = mysql_connect("sql2.power-heberg.net", "chess32", "32310");
$db      = mysql_select_db("chess32");
$sql     = "SELECT nom, prenom, titre, club, licence, elo, jour, mois, année, sexe, tournoi, mail, paiement ".
           "FROM marathon08 ".
           "WHERE tournoi LIKE '17e Marathon' ".
           "ORDER BY elo DESC";
$requete = mysql_query($sql, $cnx);
$count   = mysql_num_rows($requete);
?>
<table border="1" cellpadding="1" cellspacing="1" align="center">
  <tr>
    <th>nom</th>
    <th>prenom</th>
    <th>titre</th>
    <th>club</th>
    <th>licence</th>
    <th>elo</th>
    <th>Date de Naissance</th>
    <th>Catégorie</th>
    <th>Sexe</th>
    <th>mail</th>
    <th>paiement</th>
  </tr>
<?php
while( $result = mysql_fetch_array( $requete ) )
{
    $categorie = ($result['annee'] <= 1976) ? 'vétéran' : 'junior';
    echo( "  <tr>\n" );
    echo( "    <td><div align=\"center\">".$result["nom"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["prenom"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["titre"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["club"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["licence"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["elo"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["jour"]." / ".$result["mois"]." / ".$result["année"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$categorie."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["sexe"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["mail"]."</div></td>\n" );
    echo( "    <td><div align=\"center\">".$result["paiement"]."</div></td>\n" );
    echo( "  </tr>\n" );
}
?>
</table><br>
Et si tu ne saisis pas la ligne :
$categorie = ($result['annee'] <= 1976) ? 'vétéran' : 'junior';
Alors vas faire un petit tour sur ce sujet de la FAQ
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

lux
Eléphant du PHP | 372 Messages

26 avr. 2008, 17:05

Hello.

Dans $année, y a rien non ?

Il faut que tu récupères la valeur de $année dans $result avec $result["année"]


Au passage, on évite de mettre des accents dans les noms de variables :wink:

EDIT : Grillé par Cyrano :P

Mammouth du PHP | 19672 Messages

26 avr. 2008, 17:11

EDIT : Grillé par Cyrano :P
Ben ouais, tu es lux, pas Lucky Luke :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1996 Messages

26 avr. 2008, 21:56

Ca c'est fais pour 2 minutes seulement :lol:
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 69 Messages

26 avr. 2008, 22:52

En tout cas, moi je suis ni l'un ni l'autre car même avec la réponse sous le yeux, j'ai réussi à rien trouvé, forcément en mettant la fonction avant "while" j'allais pas aller loin :?
Mais en tout cas, j'ai fini par réussir et je vous remercie à tous les 2 :lol: :lol:

A +