Page 1 sur 1

Mettre et afficher une condition

Posté : 26 avr. 2008, 16:50
par coucou
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

Posté : 26 avr. 2008, 17:03
par Cyrano
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

Posté : 26 avr. 2008, 17:05
par lux
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

Posté : 26 avr. 2008, 17:11
par Cyrano
EDIT : Grillé par Cyrano :P
Ben ouais, tu es lux, pas Lucky Luke :langue:

Posté : 26 avr. 2008, 21:56
par Aureusms
Ca c'est fais pour 2 minutes seulement :lol:

Posté : 26 avr. 2008, 22:52
par coucou
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 +