Page 1 sur 1

Insérer des champs dans une table

Posté : 30 oct. 2009, 19:34
par nagstef
Bonjour !!

Je ne comprends pas pourquoi ce code ne marche pas !!

mysql_query("CREATE TABLE `utilisateur_temporaire_csv` (`id` INT NOT NULL AUTO_INCREMENT, PRIMARY KEY ( `id` ))") or die(mysql_error());
for ($i = 0; $i < 15; $i++)
{
mysql_query("ALTER TABLE `utilisateur_temporaire_csv` ADD 'champ_$i' TEXT NOT NULL");
}

En fait, ca crée bien la table avec le champ 'id', mais 'champ_1', 'champ_2', etc ne se créent pas !!
Où fais-je une erreur ? Ou tout simplement ce n'est pas faisable ?

En fin de compte, si ce n'est pas faisable de cette façon, et comme je n'ai que des champs TEXT, comment faire pour créer une table temporaire, sans connaitre à l'avance le nombre de champs dont l'utilisateur aura besoin ?
Merci !!

Re: Insérer des champs dans une table

Posté : 30 oct. 2009, 19:48
par Ryle
Un " or die(mysql_error()) " dans la seconde requête t'aurais sans doute donné la solution ;)

En fait, les apostrophes que tu utilises pour délimiter le nom du champ que tu veux ajouter à la table ne sont pas correctes (elles délimitent une chaine et pas un nom de table)

Mais pour répondre à ta question (et c'est personnelement la méthode que j'aurais choisis) j'aurais créé une table pas temporaire contenant un id, un numéro (correspondant à ton $i si l'id n'est pas suffisant) et un champ texte, et j'aurais ajouté un enregistrement pour chaque champ texte supplémentaire nécessaire...

Je préfère manipuler les enregistrements de façon dynamique plutôt que la structure de la base de données :)

Re: Insérer des champs dans une table

Posté : 30 oct. 2009, 20:03
par nagstef
Merci encore ... Toutes ces histoire d'apostrophes, de guillemets et de délimiteur de chaine .. boudiou, j'ai parfois du mal !! :)