ENUM qui evolue

socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005 - 12 déc. 2004 à 17:25
schmoutzs Messages postés 3 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 janvier 2005 - 18 janv. 2005 à 11:54
Bonjour a tous, merci de lire mon message :
Mon problème : J'aimerais que mon champ ENUM dans ma base de donnée évolue, qu'il y est des valeurs qui se rajoute. ( J'ai une valeur 'a' et une autre 'b' et je voudrais rajouter une valeur 'c' )

J'ai pensé a faire une requete sql du genre :

$ab = "'a','b'";
$c = ",'c'";
$x = $ab . $c;
$requete = "ALTER TABLE ` base `.`table` CHANGE `champ` `champ` ENUM(" . $x . ") NOT NULL ";
$result = mysql_query($requete);

Premièrement, est-ce que ça marche ?

Deuxièmement, ma variable $ab ne va pas toujours être égale à 'a','b' ( Exemple : une foi qu'on aura rajouté la valeur 'c' , la variable $ab sera égale à 'a','b','c' ) Comment extraire les valeurs et les stoquer dans la variable $ab ?

Merci d'avance à tous ceux qui vont me repondre !

10 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 déc. 2004 à 23:43
"Premièrement, est-ce que ça marche ?"=> le plus simple pour le savoir serait de tester... nous on a pas le code en entier...

$ab ="'a','b'";
auh... $ab ne sera jamsi égal à $a.$b mais toujours à "'$a'.'$b'"... exemple :
$a='salut';
$b='salut';
$ab ="'a','b'";
echo "$ab"

il s'affichera ceci :

'salut'.'salut'
et non
salutsalut
...

Je ne connais pas les BDD... Mais a mon avis tu devrais t'installer apache sur ton pc pour tester tes codes...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 déc. 2004 à 11:54
Nan mais ce que je demande en fait c'est comment extraire les valeurs possible d'un chmp ENUM ?
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 déc. 2004 à 18:44
écoutes je ne faisais que donner ton erreur...

relis ta page du dessus...
Et a ta place je testeais quand meêm les codes avant de les poster..

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 déc. 2004 à 18:59
Ok, je ferais ça la prochaine fois, de toute manière je crois que j'ai trouver un moyen de faire sans ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
schmoutzs Messages postés 3 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 janvier 2005
6 janv. 2005 à 23:33
ouais, moi ça m'intéresse si tu as trouvé une solution...



comment on peut récupérer les différents champs prévus du ENUM



c'est à dire quelle requête SQL former pour obtenir les différents possibilitée pour remplir la case...



???



merci d'avance
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
7 janv. 2005 à 13:28
<HR>
Voila, c'est ce que je voulais dire lool, ben moi j'ai toujours pas trouvé.

<HR>

Ca pourrait être pratique pour faire des formulaires mais que des possibilités se rajoutent tout le temps, enfin, j'éspère que tu m'a compri.

Pour vous servir :D Socomajor
0
schmoutzs Messages postés 3 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 janvier 2005
12 janv. 2005 à 18:16
bon, la réponse je l'ai eu, par mon frère qui est formateur Lotus... enfin bref



la requête à envoyer à SQL est :

(identifier, login mot de passe; select db...)



SHOW COLUMNS FROM table LIKE 'genre'



ainsi SQL me renvoie un tableau contenant les différentes possibilités définies par ENUM pour la case 'genre'



donc avec ça j'ai bidouillé et ça donne :



$query= "SHOW COLUMNS FROM download LIKE 'genre'";

$result=mysql_query($query);



if(mysql_num_rows($result)>0) //verrifie que SQL a renvoyé qqch

{ $row=mysql_fetch_row($result);

$options=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1]));



$i =0;

// initialise pour la boucle (voir suite)

while(isset($options[$i])) //lis le contenu du tableau grace à une boucle


{ echo '<label>

'.$options[$i].'</label>
';


$i++;

//incrémante pour lire la possibilité suivante

}

}


bah au final ça m'affiche une série de boutons avec les différentes possibilités prévues dans la base de donnée.



G pas tout compris comment ça marche, mais ça tourne.
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 janv. 2005 à 12:02
Ok, je teste ! Merci beaucoup

Pour vous servir :D Socomajor
0
socomajor Messages postés 56 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 9 août 2005
13 janv. 2005 à 12:13
Ben chez moi ça marche pas, il me dit que $result n'est pas valable pour les option mysql_num_rows et mysql_fetch_row. C'est ptèt plus simple de le faire sans enum...

Socomajor
0
schmoutzs Messages postés 3 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 janvier 2005
18 janv. 2005 à 11:54
il comprend pas ta requête ?


il bug dès la 2ème ligne !?

$query= "SHOW COLUMNS FROM download LIKE 'genre'";

$result=mysql_query($query);



SQL te renvoie rien ? (à part des erreurs)

T sûr que t'es bien connecté à ta base mySQL quand tu tapes ça?

tu as bien changé
download par le nom de TA table...



nan, tu va peut être mal le prendre

mais je comprends pas que tu butte sur l'envoie de la requête SQL
0
Rejoignez-nous