Inserer switch dans tableau dynamique

Fardouik
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 13:19

Voilà mon formulaire :
<TABLE cellSpacing=8 cellPadding=2 width="100%" border=0>
  <TBODY>
    <TR>
      <TD class=titre>Vous n'&ecirc;tes pas encore inscrit ?? alors inscrivez vous d&egrave;s maintenant ! </TD>
    </TR>
    <TR>
      <TD><div align="left">
<form method="post" action="ajouter.php">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="29%" height="33"><strong>Pseudo</strong></td>
                <td width="71%"><input name="pseudo" type="text" id="pseudo" onKeyUp="javascript:couleur(this);">
                    <span class="Style1">*</span> </td>
              </tr>
              <tr>
                <td height="33"><strong>Nom</strong></td>
                <td><input name="nom" type="text" id="nom" onKeyUp="javascript:couleur(this);">
                    <span class="Style1">*</span></td>
              </tr>
              <tr>
                <td height="33"><strong>Pr&eacute;nom</strong></td>
                <td><input name="prenom" type="text" id="prenom" onKeyUp="javascript:couleur(this);">
                    <span class="Style1">*</span></td>
              </tr>
              <tr>
                <td height="33"><strong>Ville</strong></td>
                <td><input name="ville" type="text" id="ville" onKeyUp="javascript:couleur(this);">
                    <span class="Style1">*</span></td>
              </tr>
              <tr>
                <td height="33"><strong>Equipe</strong></td>
                <td><input name="equipe" type="text" id="equipe"> 
                  </td>
              </tr>
              <tr>
                <td height="33"><strong>Site internet </strong></td>
                <td><input name="web" type="text" id="web"> 
                  </td>
              </tr>
              <tr>
                <td height="33"><strong>Adresse email </strong></td>
                <td><input name="mail" type="text" id="mail" onKeyUp="javascript:couleur(this);">
                    *</td>
              </tr>
              <tr>
                <td height="33"><div align="left"><strong>Tournoi Counter Strike</strong></div></td>
                <td><table width="300" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="30"><div align="center">
                          <input type="radio" name="counter" value="Y">
                      </div></td>
                      <td width="77"><div align="left">Oui</div></td>
                      <td width="30"><div align="center">
                          <input name="counter" type="radio" value="N" checked>
                      </div></td>
                      <td width="129"><div align="left">Non</div></td>
                    </tr>
                </table></td>
              </tr>
              <tr>
                <td height="33"><div align="left"><strong>Tournoi Warcraft 3 </strong></div></td>
                <td><table width="300" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="30"><div align="center">
                          <input type="radio" name="warcraft" value="Y">
                      </div></td>
                      <td width="77"><div align="left">Oui</div></td>
                      <td width="30"><div align="center">
                          <input name="warcraft" type="radio" value="N" checked>
                      </div></td>
                      <td width="129"><div align="left">Non</div></td>
                    </tr>
                </table></td>
              </tr>
              <tr>
                <td height="33"><div align="left"><strong>Tournoi Unreal Tournament </strong></div></td>
                <td><table width="300" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="30"><div align="center">
                          <input type="radio" name="unreal" value="Y">
                      </div></td>
                      <td width="77"><div align="left">Oui</div></td>
                      <td width="30"><div align="center">
                          <input name="unreal" type="radio" value="N" checked>
                      </div></td>
                      <td width="129"><div align="left">Non</div></td>
                    </tr>
                </table></td>
              </tr>
              <tr align="center">
                <td height="33" colspan="2">
                  <div align="center">
                    <input type="submit" name="Submit" value="M'inscrire">
                    </div></td>
              </tr>
            </table>
          </form>
          <p><span class="Style1">*</span> Champs obligatoire </p>
      </div></TD>
    </TR>
  </TBODY>
</TABLE>
Dans ma base de donnée j'ai bien à mon pseudo Y pour counter
Voilà mon script final :
echo "<table>"; 
echo "<tr><td width=\"90\"><strong>Pseudo</strong></td><td width=\"90\"><strong>Prenom</strong></td><td width=\"90\"><strong>Equipe</strong></td><td width=\"90\"><strong>Tournoi CS</strong></td><td width=\"90\"><strong>Tournoi W3</strong></td><td width=\"90\"><strong>Tournoi UT</strong></td></tr>"; 
while( $contenu = mysql_fetch_array ($req)) { 
   echo "<tr>"; 
   echo "<td>".$contenu[pseudo]."</td>"; 
   echo "<td>".$contenu[prenom]."</td>"; 
   echo "<td>".$contenu[equipe]."</td>"; 
if($contenu[counter] == 'Y') 
{    
print "<td><img src='http://scipately.free.fr/images/icons/Y.gif'</td>"; 
} 
else{ 
print "<td><img src='http://scipately.free.fr/images/icons/N.gif'</td>"; 
} 
   echo "<td>".$contenu[warcraft]."</td>"; 
if($contenu[warcraft] == 'Y') 
{    
print "<td><img src='http://scipately.free.fr/images/icons/Y.gif'</td>"; 
} 
else{ 
print "<td><img src='http://scipately.free.fr/images/icons/N.gif'</td>"; 
} 
   echo "<td>".$contenu[unreal]."</td>"; 
if($contenu[unreal] == 'Y') 
{    
print "<td><img src='http://scipately.free.fr/images/icons/Y.gif'</td>"; 
} 
else{ 
print "<td><img src='http://scipately.free.fr/images/icons/N.gif'</td>"; 
}  
   echo "</tr>"; 
} 
echo "</table>"; 
Il faut noter que lorque je remplace :
if($contenu[counter] == 'Y') 
par
if($contenu[counter] == '') 
cela marche il me met bien mon petit V bleu...
En gros il ne reconnait pas mon Y dans ma db comment ce fait ce???

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 13:28

mais est-ce que tu as essayé d'afficher ta variable
$contenu[counter] comme je te l'ai indiqué ?

avant de faire un test dessus, vérifie ce qu'il y a dedans

Fardouyk
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 13:30

Wi j'ai essayé et cela m'affiche :
variable $contenu[counter] = ""
Voila pourtant dans ma base j'ai bien dans counter Y[/quote]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 13:33

ok c'est bien ce que je pensais, ton test est bon mais comme il né récupère pas la valeur...

et si tu essayes comme je te l'ai dit au début avec des guillemets autout de "counter" :
echo 'variable $contenu[counter] = "'.$contenu["counter"].'"';

Fardouyk
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 13:36

Non cela ne marche pas il ne me renvoie rien en aucun cas....

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 13:49

- donne nous le code de la requête SQM que tu exécutes
- fais un print_r($contenu) pour voir ce qu'il à dedans après le mysql_fetch_array

VaN
Mammouth du PHP | 1107 Messages

04 juil. 2005, 13:51

deja moi je changerai tous les contenu[pseudo] en contenu['pseudo'], etc.

Invité
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 13:52

Non c'est bon je trop un imbécile, j'aurais du vérifier cela au tout début :p
$req = mysql_query("SELECT pseudo,prenom,nom,ville,equipe,web,mail,counter,warcraft,unreal from tr_pz2"); 
J'avauis oublié d'ajouter counter & co ^^ merci beaucoup de ton aide

Eléphant du PHP | 128 Messages

04 juil. 2005, 15:41

Euh pourquoi les balise <td> </td> ont disparu pour afficher oui oui non?

et pourquoi ya pa de quotes dans ton tablo $contenu?

Ensuite le switch me parait etre le plus clair et le plus simple pour faire ce genre de chose (mais je suis un fan du swuitch aussi :p)
while( $contenu = mysql_fetch_array ($req)) {
switch($contenu['counter'])
{
  case 'Y':
  imgcounter = "lechemindelimageOUI";
  break;

   case 'N':
   imgcounter = "lechemindelimageNON";
   break;
   
    default:
     imgcounter = "lecheminduneimagepardefaut(une image erreur par exempleà";
      break;
}

//De meme pour chaque jeu
   echo "<tr>";
   echo "<td>".$contenu[pseudo]."</td>";
   echo "<td>".$contenu[prenom]."</td>";
   echo "<td>".$contenu[equipe]."</td>";
   echo "<td><img src=".$imgcounter."></td";
   echo "<td><img src=".$imgwarcraft."></td>";
   echo "<td><img src=".$imgunreal."></td>";
   echo "</tr>";
}
echo "</table>";
C'est pas moi qui ai volé l'orange !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 15:46

Ensuite le switch me parait etre le plus clair et le plus simple pour faire ce genre de chose (mais je suis un fan du swuitch aussi :p)
tu trouves ? moi pas, si c'est OUI ou NON, quel est l'intérêt du switch ?

déjà il faudrait que tu m'expliques pourquoi dans ton switch tu mets un case OUI, un case NON et un default

on parle pas de la consitution là, y'a pas de choix "Oui mais" ou "Non sauf" ;)

Eléphant du PHP | 128 Messages

04 juil. 2005, 15:52

Ben je met toujours un case default histoire d'etre sur on sais jamais ce qu'il peut y avoir ds ta bdd ;) mais je reconnais que c'est pas forcement necessaire...

Ensuite j'ai precisé que j'etais plutot fan du switch pour la lisibilité du code et la maintenance mais c'est un avis vraiment personnel hein bien sur qu'un if / else ou un operateur ternaire ferai amplement l'affaire ;)

Je doot reconnaitre aussi que j'ai poster sans avoir tout lu notamment la 2e page :D
C'est pas moi qui ai volé l'orange !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 15:54

je suis tout à fait d'accord avec toi, il vaut mieux mettre un default
mais pour le coup j'aurais mis un "case OUI" et le default, comme ça le "NON" passe dans le default

après, c'est une histoire de goût, si le switch ne se justifie pas trop, c'est pas gênant non plus ;)