Switch & while
Résolu
florire
Messages postés
187
Statut
Membre
-
-helper- Messages postés 92 Statut Membre -
-helper- Messages postés 92 Statut Membre -
Bonjour,
J'aimerais savoir si cela est possible:
Si non, comment faire ?
Merci de votre aide !
J'aimerais savoir si cela est possible:
switch ($d1[$i1]["rang"]){
$requete = "SELECT * FROM rang ORDER BY nom ASC";
$requete = mysql_query($requete) or die(mysql_error());
while ($ligne=mysql_fetch_array($requete)){
case '$ligne["nom"]': $couleur = "$ligne['couleur']"; break;
}
default: $couleur = "black"; // Les autres cas
break; // On fait rien
}
Si non, comment faire ?
Merci de votre aide !
2 réponses
-
'lut, non, c'est impossible.
En revanche tu peux parvenir a tes fins avec un tableau associatif:// Tu fais ta requête $requete = "SELECT * FROM rang ORDER BY nom ASC"; $requete = mysql_query($requete) or die(mysql_error()); // Et ajoute chaque couleur dans un tableau, indexé par son nom respectif $couleurs = array(); while ($ligne=mysql_fetch_array($requete)){ $couleurs[$ligne["nom"]] = $ligne['couleur']; }
Pour vérifier si le nom existe dans le tableau, on se sert de array_key_exists():$couleur = ""; if (array_key_exists($d1[$i1]["rang"], $couleurs)) { $couleur = $couleurs[$d1[$i1]["rang"]]; } else { // Correspondant à ton "default" $couleur = "black"; }
from human import idiocy
del idiocy-
Oui ou isset( $tab['key'] )
Mais copié de la doc :
isset() ne retourne pas TRUE pour les clés de tableaux qui correspondent à une valeur NULL alors que c'est le cas pour array_key_exists().
Ou
in_array( $key, array_keys($tab) );
Mais la à mon avis c'est ce que fait déjà "array_key_exists" peut etre en plus rapide !...
Bon ok j'avoue : je ne connaissais pas array_key_exists !...
Lol
-
-
D'accord, et merci pour ta réponse rapide et pour ton code qui fonctionne parfaitement (: