Inserer switch dans tableau dynamique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inserer switch dans tableau dynamique

par ouckileou » 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 ;)

par Guakamol » 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

par ouckileou » 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" ;)

par Guakamol » 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>";

par Invité » 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

par VaN » 04 juil. 2005, 13:51

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

par ouckileou » 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

par Fardouyk » 04 juil. 2005, 13:36

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

par ouckileou » 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"].'"';

par Fardouyk » 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]

par ouckileou » 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

par Fardouik » 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???

par ouckileou » 04 juil. 2005, 12:20

repars de ce code là
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 "OUI";
}
else{
print "NON";
}
   echo "<td>".$contenu[warcraft]."</td>";
   echo "<td>".$contenu[unreal]."</td>";
   echo "</tr>";
}
echo "</table>";
en séparant bien les différents affichage, et reposte un essai

PS : et ta pause déjeuner ? ;)

par Fardouik » 04 juil. 2005, 12:19

Ben si mais je suis toujours au meme point..
J'avance pas avec mon bidule.... :(

par ouckileou » 04 juil. 2005, 12:18

ce truc là ce n'est qu'un if/else condensé...

tu ne veux pas essayer d'abord avec un vrai if/else, et ensuite tu pourras réduire ? ;)

et une question en passant, si tu affiches cette variable : $contenu[counter]

ça te donne quoi ? tu as la bonne valeur ?
echo 'variable $contenu[counter] = "'.$contenu[counter].'"';