[MySQL] récupérer les valeurs possibles d'un enum

récupérer les valeurs possibles d'un enum [MySQL] - Programmation

Marsh Posté le 18-11-2001 à 13:00:53    

salut,
je voudrais savoir comment faire en php pour faire une requête qui récupère les différentes valeurs possibles d'un enum.
J'ai en effet un champ "couleur" de type ENUM qui peut prendre 4 valeurs : vert, bleu, gris, violet
J'ai un formulaire avec une liste déroulante donnant la possiblité à l'utilisateur de choisir la couleur de son interface. Pour le moment je rentre manuellement les  
select name="couleur_interface">
           <option></option>
           <option>gris</option>
           <option>bleu</option>
           <option>violet</option>
           <option>vert</option>
          </select>
Mais je voudrais pouvoir faire ça plus proprement avec la récupération dynamique des valeurs dans la BD


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 18-11-2001 à 13:00:53   

Reply

Marsh Posté le 20-11-2001 à 08:02:12    

:bounce:

Reply

Marsh Posté le 20-11-2001 à 10:59:49    

Le principe est le suivant en perl... m'enfin, ca doit être pareil en php :)
 
 
 
select name="couleur_interface">  
          <option></option>  
 
use DBI;
$driver = "mysql";
$dsn = "DBI:$driver:database=umls;host=localhost;port=$port" ||die "pb de connection : $DBI::errstr";
$dbh = DBI->connect($dsn, "root", "" ) ||die "pb de connection : $DBI::errstr";
$sel_coul="select couleur_possible from table_couleur";
$sel1 = $dbh->prepare("$sel_coul" );
$sel1->execute ||die "pb dans l'execution : $DBI:errstr";
 
while (@essais = $sel1->fetchrow_array) {
<option>$essais[0]</option>
}
$dbh->disconnect;
 
</select>  
 
 
Je sais pas si c'est la manière la plus simple qu'il soit, m'enfin, ca, ca marche.
A toi de corriger l'orthographe  

  • pour que ca marche sous php, notament la connection à la base, qui doit être sensiblement différente en php.
  • enlever le smileys qui s'incruste


M'enfin, tu as le principe ;)

 

[edtdd]--Message édité par TetardKing--[/edtdd]


---------------
Da Breizh WoRlD DoMIna7iOn T3aM * Baptiste Mary blog
Reply

Marsh Posté le 20-11-2001 à 11:09:41    

Bon ben voici le code  
 
mysql_connect("$Host","$User","$Passw" ); // ton serveur, login et pass SQL comme d hab
$requete="select (nom_couleur) from tbl_couleur order by 'couleur'"; // La  cets ta requete : j'extrait le nom des couleurs du champs "nom_couleur" dans la table "tbl_couleur"
echo "<select name='couleur'>";
echo "<option selected>Choisir un couleur</option>";
echo "<option>--------------------------</option>";
$result = mysql_db_query ("nom__base",$requete);
while ($row=mysql_fetch_array ($result))
 {
    echo "<option value='$row[0]'>$row[0]\n";
 }
mysql_free_result ($result);
echo "</select>";
echo "       ";
echo "  <input type=submit value='OK'>";
echo "</form>";

Reply

Marsh Posté le 20-11-2001 à 11:13:16    

copieur :p :)

Reply

Marsh Posté le 20-11-2001 à 11:15:03    

Oui mais moi c est du vrai php :D

Reply

Marsh Posté le 20-11-2001 à 11:16:04    

Trop facile le php :D :sarcastic:

Reply

Marsh Posté le 20-11-2001 à 12:46:38    

vous êtes super sympa les mecs, l'autre jour personne ne m'a répondu. Je vous tiens au courant.
petite remarque, là vous êtes en train de m'exliquer comment faire un select sur une table. ça ça fait un bail que je maîtrise. Le pb c'est c'est que j'ai un type enum couleur et je veux récupérer les valeurs possibles. ce qui signifie que je n'ai pas de table avec toutes les couleurs possibles. Ou alors faut que je la fasse cette table et que je fasse une clé étrangère dans ma table utilisateur (qui a un champ couleur).

 

[edtdd]--Message édité par z0rglub--[/edtdd]

Reply

Marsh Posté le 20-11-2001 à 14:08:54    

Sachant pas ce que c'est qu'un truc enum machin_truc... je peux pas te repondre... moi, je fait avec mes pauvres moyens :)

Reply

Marsh Posté le 20-11-2001 à 19:43:34    

non, pas de soucis, c'est sympa d'essayer de m'aider.
Je sens que je vais devoir passer par une clé étrangère mais je sais pas si ça marche avec MySQL... à voir.


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 20-11-2001 à 19:43:34   

Reply

Marsh Posté le 21-11-2001 à 01:50:30    

function get_enums($table, $field) {
 
  $q=mysql_query("desc $table" );
  while ($row=mysql_fetch_array($q)) if ($row["Field"]==$field) $ret=explode(",", substr($row["Type"], 5, -1));
  mysql_free_result($q);
  return($ret);
 
}
 
j'ai pas testé y'a ptet une merde kkpart mais c le principe ...

 

[edtdd]--Message édité par six_dfx--[/edtdd]


---------------
Don't blink. Don't even blink. Blink and you're dead. They are fast, faster than you could believe, don't turn your back, don't look away, and DON'T BLINK. Good luck.
Reply

Marsh Posté le 22-11-2001 à 13:24:54    

c super, merci, je viens d'avoir 15 minutes pour le tester et ça marche pas mal, il faut juste rajouter un bout de code pour obtenir
bleu
gris
vert
violet
 
au lieu de  
'bleu'
'gris'
'vert'
'violet'

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed