Récupérer les valeurs définies dans un champ ENUM
Bonjour,
ça fait un ptit moment déjà que je cherche ça que ce soit sur le net ou sur ce même forum mais en vain. Je suis tombée que sur des soluces un peu bizarres avec des variables qui viennent de nul part... bref :cry:
Donc !
Exemple : J'ai un champ sociétés de type ENUM qui peut prendre pour valeur EDF, Total, SNCF, CCF, Framatom....
Ce que j'aimerais c'est pouvoir lister dans une liste déroulante, toutes ces sociétés, plutôt que de le faire en dur... ce qui permettrait de rajouter des valeurs sans trop me prendre la tête en reprenant mon code.
Merci à tous ceux qui auront la gentillesse de m'aider, et surtout excusez-moi si ce post est un doublon c'est pourtant pas faute d'avoir cherché... oui oui j'ai aussi utilisé le champ de recherche...
Récupérer les valeurs définies dans un champ ENUM
Oui oui, j'ai bien une base, et justement je voudrais éviter de passer par une table qui ne contiendrait que les sociétés. Je sais que c'est possible, mais maintenant la solution je vois pas.... 8O
A priori, il faudrait se servir de ce genre de requête :
SHOW COLUMNS FROM table LIKE champ
Reste à l'exploiter en PHP... une idée :?:
Récupérer les valeurs définies dans un champ ENUM
Wooww ça va vite ici, à peine le temps de répondre
merci Swoög je vais aller voir ça tout de suite :)
Récupérer les valeurs définies dans un champ ENUM
Re-bonjour,
voilà j'suis toute contente je viens d'en finir avec ce problème, j'ai mis mon code au propre, pour en faire profiter ceux qui en auraient besoin
merci à tous :lahola:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<?php
// Connexion
mysql_connect("localhost", "user", "pwd") or die("Connexion impossible");
mysql_select_db("base") or die("Impossible de se connecter à la base");
// Je filtre le champ sur lequel je souhaite travailler.
$requete = "SHOW COLUMNS FROM contacts LIKE 'societes'";
// Exécution de la requête.
$resultat = mysql_query($requete) or die(mysql_error());
$ligne = mysql_fetch_row($resultat);
// La colonne 1 correspond au type du champ.
$chaine = $ligne[1];
// $chaine donne : enum('EDF','Total','CCF','Framatom')
// Ici avec le paramètre "5" je retire le début de la chaîne -> enum(
// Et avec le paramètre "-1" je retire la fin de la chaîne -> )
$chaine = substr($chaine, 5, -1);
// $chaine donne : 'EDF','Total','CCF','Framatom'
// Je coupe la chaîne chaque fois que je rencontre une virgule.
$chaine = explode(",", $chaine);
// $chaine[0] donne : 'EDF'
// $chaine[1] donne : 'Total'
// $chaine[2] donne : 'CCF'
// $chaine[3] donne : 'Framatom'
// Je parcours le tableau $chaine.
for($i=0; $i<count($chaine); $i++) {
$ma_chaine = $chaine[$i];
// Ici je retire le premier et le dernier caractère de la chaine
// que je rencontre -> 'EDF' devient EDF
$ma_chaine = substr($ma_chaine, 1, -1);
echo($ma_chaine."<br />");
}
?> |