{MySQL} créer une table à partir script PHP
Résolu/Fermé
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
-
24 août 2009 à 17:09
momo-ben2A Messages postés 105 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 19 décembre 2010 - 25 août 2009 à 19:40
momo-ben2A Messages postés 105 Date d'inscription lundi 10 août 2009 Statut Membre Dernière intervention 19 décembre 2010 - 25 août 2009 à 19:40
A voir également:
- {MySQL} créer une table à partir script PHP
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Table ascii - Guide
- Script vidéo youtube - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
12 réponses
Bonjour
Il faut bien préciser quels sont les éléments de l'ensemble! (SET = ensemble)
D'après la doc (pas testé)
ALTER TABLE `guestbook` ADD `choix_peinture` SET('element11','element2','element3') NOT NULL
Il faut bien préciser quels sont les éléments de l'ensemble! (SET = ensemble)
D'après la doc (pas testé)
ALTER TABLE `guestbook` ADD `choix_peinture` SET('element11','element2','element3') NOT NULL
je n'ai pas vraiment compris (lacunes en vocabulaire technique...) ce que tu veux dire par ensemble. Ce n'est pas une question de vocabulaire technique, c'est une question d'anglais. SET signifie ENSEMBLE (au sens théorie des ensembles). Le type SET représente un ensemble de valeurs (par opposition au type enum (énuméré) qui représente une seule valeur parmi une liste). Si chaque visiteur a droit à une seule valeur préférée, le type enum est préférable; s'il peut en sélectionner plusieurs, il faut choisir un type SET.
Pour ce qui est de la manière d'ajouter un champ à ta table, je ne vois pas ce qui t'oblige à le faire par programme. Pourquoi ne pas le faire à partir de phpmyadmin (ou de tout autre gestionnaire de bdd dont tu disposes) ?
Pour ce qui est de la manière d'ajouter un champ à ta table, je ne vois pas ce qui t'oblige à le faire par programme. Pourquoi ne pas le faire à partir de phpmyadmin (ou de tout autre gestionnaire de bdd dont tu disposes) ?
(un faux ami surement) Tu as donc des problèmes avec le français aussi... Un faux-ami ça n'est pas du tout ça. ce serait un faux ami s'il y avait un mot français qui s'écrivait aussi SET (ou y ressemblait beaucoup) et que tu avias confondu avec ce mot.
ALTER TABLE `guestbook` ADD `choix_peinture` ENUM NOT NULL Même problème qu'avec ta requête avec le SET. Un enum peut perndre une valeur parmi plusieurs, il faut bien que tu précises quelles sont ces valeurs possibles, or elles n'apparaissent pas dans la requête. Comment veux-tu que mysql devine les valeurs possibles d'enum ?
Quand tu crées le champ, il faut que dans la case 'valeurs' tu mettes les valeurs possibles , entre apostrophes et séparées par une virgule
ALTER TABLE `guestbook` ADD `choix_peinture` ENUM NOT NULL Même problème qu'avec ta requête avec le SET. Un enum peut perndre une valeur parmi plusieurs, il faut bien que tu précises quelles sont ces valeurs possibles, or elles n'apparaissent pas dans la requête. Comment veux-tu que mysql devine les valeurs possibles d'enum ?
Quand tu crées le champ, il faut que dans la case 'valeurs' tu mettes les valeurs possibles , entre apostrophes et séparées par une virgule
Merci de prendre avec humour mon côté père fouettard (car je dois bien reconnaître que j'en ai un). Mais comme je ne suis pas à une mauvaise foi près, je dirai que c'est parce que j'aime bien les gens et que qui aime bien châtie bien.
Pour ce qui est des valeurs à retenir pour l'enum, en théorie peu importe. Mais ça va être plus pratique de prendre les champs "value" du select, car ce sont ces valeurs-là que tu vas relire dans la variable $_POST et elles seront directement exploitables pour une requête mysql.
Pour ce qui est des valeurs à retenir pour l'enum, en théorie peu importe. Mais ça va être plus pratique de prendre les champs "value" du select, car ce sont ces valeurs-là que tu vas relire dans la variable $_POST et elles seront directement exploitables pour une requête mysql.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
65
24 août 2009 à 18:34
24 août 2009 à 18:34
Merci pour ta réponse rapide,
Malheureusement, je n'ai pas vraiment compris (lacunes en vocabulaire technique...) ce que tu veux dire par ensemble et comment les préciser ? Je ne veux pas uniquement les lister mais connaître la fréquence avec laquelle on les choisit.
Veux-tu dire qu'il faut que je fasse une table de ce type d'abord ?
ID(type INT) NOM DU TABLEAU (type SET)
0 valeur 0 défaut
1 nom du tableau 1
2 nom du tableau 2
3 nom du tableau 3
etc.. etc...
Ensuite intégrer cet ensemble dans mon autre table ?
Merci pour tes conseils
Malheureusement, je n'ai pas vraiment compris (lacunes en vocabulaire technique...) ce que tu veux dire par ensemble et comment les préciser ? Je ne veux pas uniquement les lister mais connaître la fréquence avec laquelle on les choisit.
Veux-tu dire qu'il faut que je fasse une table de ce type d'abord ?
ID(type INT) NOM DU TABLEAU (type SET)
0 valeur 0 défaut
1 nom du tableau 1
2 nom du tableau 2
3 nom du tableau 3
etc.. etc...
Ensuite intégrer cet ensemble dans mon autre table ?
Merci pour tes conseils
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
65
24 août 2009 à 19:33
24 août 2009 à 19:33
En fait, pour préciser, la base de mon script est pris sur le site du zero :
http://www.siteduzero.com/tutoriel-3-14547-tp-un-livre-d-or.html
Dans le formulaire html, j'ai donc ajouté une liste déroulante
J'aimerais récupéré dans la base de données, les choix des peintures préférées des visiteurs avec le pseudo qui y est affilié.
Par exemple: Benyaamin laisse un message et fait un choix de sa peinture préférée.
J'aimerais donc pouvoir ajouté ce champ correspondant au choix dans la table qui sert au pseudo et au message ou bien de créer une nouvelle table qui ait au moins ces deux champs : pseudo et choix de peinture.
Mais je n'arrive pas à ajouter ce champ, je ne sais comment faire..
J'espère avoir été précis, j'ajouterai d'avantage d'informations si besoin
http://www.siteduzero.com/tutoriel-3-14547-tp-un-livre-d-or.html
Dans le formulaire html, j'ai donc ajouté une liste déroulante
J'aimerais récupéré dans la base de données, les choix des peintures préférées des visiteurs avec le pseudo qui y est affilié.
Par exemple: Benyaamin laisse un message et fait un choix de sa peinture préférée.
J'aimerais donc pouvoir ajouté ce champ correspondant au choix dans la table qui sert au pseudo et au message ou bien de créer une nouvelle table qui ait au moins ces deux champs : pseudo et choix de peinture.
Mais je n'arrive pas à ajouter ce champ, je ne sais comment faire..
J'espère avoir été précis, j'ajouterai d'avantage d'informations si besoin
Super ! J'avance !
Je pensais que c'était SET pour "établir" (un faux ami surement)...
J'utilise phpmyadmin avec wamp
J'essaye d'introduire un nouveau champ appelé "choix_peinture", de type ENUM donc, je n'ose pas trop toucher la case defaut en mettant un null donc je laisse ainsi.Je ne touche à rien d'autre
Je sauvegarde le changement et la phpmyadmin me met :
requête SQL:
ALTER TABLE `guestbook` ADD `choix_peinture` ENUM NOT NULL
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL' at line 1
C'est la réponse que me donne php my admin, j'ai vidé la table préalablement au cas où, il n'y a rien d'utile dedans pour l'instant.
J'ai donc toujours un problème donc, même si je sais maintenant quel type de champ utiliser.
J'avance d'un shouya
Quel est le problème selon vous ?
Merci
Je pensais que c'était SET pour "établir" (un faux ami surement)...
J'utilise phpmyadmin avec wamp
J'essaye d'introduire un nouveau champ appelé "choix_peinture", de type ENUM donc, je n'ose pas trop toucher la case defaut en mettant un null donc je laisse ainsi.Je ne touche à rien d'autre
Je sauvegarde le changement et la phpmyadmin me met :
requête SQL:
ALTER TABLE `guestbook` ADD `choix_peinture` ENUM NOT NULL
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL' at line 1
C'est la réponse que me donne php my admin, j'ai vidé la table préalablement au cas où, il n'y a rien d'utile dedans pour l'instant.
J'ai donc toujours un problème donc, même si je sais maintenant quel type de champ utiliser.
J'avance d'un shouya
Quel est le problème selon vous ?
Merci
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
65
25 août 2009 à 11:43
25 août 2009 à 11:43
Hum, tu as entièrement raison, pour la similitude des mots que sous-entend le terme : faux-ami. Je voulais utiliser l'aspect trompeur du faux-ami qui n'est pas, il est vrai, son sens premier.
Ceci étant dit, le terme SET signifiant "ensemble" dans son sens littéral n'est pas franchement le plus évident (surtout quand on pratique l'anglais sans parler de théories des ensembles..) et j'ai pourtant un excellent niveau dans la langue (vérifié au TOIEC, niveau or).
Bref, là n'est pas la question (lepère est un peu fouettard ;-) et moi légèrement susceptible) et je ne peux que te remercier pour ton aide.
Revenons à nos moutons : J'ai appliqué ce que tu m'as conseillé (de façon rudimentaire pour l'instant), et le champ ENUM fonctionne, plus du tout de messages d'erreurs
"Quand tu crées le champ, il faut que dans la case 'valeurs' tu mettes les valeurs possibles , entre apostrophes et séparées par une virgule"
Quelle est le nom des valeurs possible selon le code HTML ci-dessous ?
-------------------------------------------------------------------------------
Quelle est votre peinture préférée ?
<select name="choix">
<option value="choix1"></option>
<option value="choix2">Blue Guitar</option>
<option value="choix3">Big Bill</option>
<option value="choix4">Blind Willie McTell</option>
etc...
--------------------------------------------------------------------------------
les valeurs sont : 'choix1', 'choix2', 'choix3', 'choix4', etc... ?
ou ce sont : '','blue guitar','big bill','blind willie mctell', etc... ?
car avec la requête PHP de mon script (qui peut encore contenir des erreurs, mais là n'est pas l'objet de cette discussion) qui prend les infos depuis le formulaire, il me renvoie :
- "choix+numéro" comme valeur si je fais la première solution
- rien du tout si je mets le nom de tableau comme valeur
Merci encore
Ceci étant dit, le terme SET signifiant "ensemble" dans son sens littéral n'est pas franchement le plus évident (surtout quand on pratique l'anglais sans parler de théories des ensembles..) et j'ai pourtant un excellent niveau dans la langue (vérifié au TOIEC, niveau or).
Bref, là n'est pas la question (lepère est un peu fouettard ;-) et moi légèrement susceptible) et je ne peux que te remercier pour ton aide.
Revenons à nos moutons : J'ai appliqué ce que tu m'as conseillé (de façon rudimentaire pour l'instant), et le champ ENUM fonctionne, plus du tout de messages d'erreurs
"Quand tu crées le champ, il faut que dans la case 'valeurs' tu mettes les valeurs possibles , entre apostrophes et séparées par une virgule"
Quelle est le nom des valeurs possible selon le code HTML ci-dessous ?
-------------------------------------------------------------------------------
Quelle est votre peinture préférée ?
<select name="choix">
<option value="choix1"></option>
<option value="choix2">Blue Guitar</option>
<option value="choix3">Big Bill</option>
<option value="choix4">Blind Willie McTell</option>
etc...
--------------------------------------------------------------------------------
les valeurs sont : 'choix1', 'choix2', 'choix3', 'choix4', etc... ?
ou ce sont : '','blue guitar','big bill','blind willie mctell', etc... ?
car avec la requête PHP de mon script (qui peut encore contenir des erreurs, mais là n'est pas l'objet de cette discussion) qui prend les infos depuis le formulaire, il me renvoie :
- "choix+numéro" comme valeur si je fais la première solution
- rien du tout si je mets le nom de tableau comme valeur
Merci encore
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
65
25 août 2009 à 16:09
25 août 2009 à 16:09
Notre père qui es (sûrement) au travail,
Que ton nom soit sanctifié,
Donne-nous aujourd'hui ton conseil quotidien,
Pardonne-nous nos offenses,
Comme nous aussi nous pardonnons à ceux qui nous ont offensés,
Mais délivre-moi du problème qui est le mien !
Que ton nom soit sanctifié,
Donne-nous aujourd'hui ton conseil quotidien,
Pardonne-nous nos offenses,
Comme nous aussi nous pardonnons à ceux qui nous ont offensés,
Mais délivre-moi du problème qui est le mien !
benyaamin
Messages postés
48
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
26 août 2009
65
25 août 2009 à 16:51
25 août 2009 à 16:51
Et bien merci lepère,
Pour répondre aux problèmes des gens sur les forums, il faut les aimer en quelque sorte, il faut aussi savoir respecter le caractère de chacun et faire avec. Je ne suis pas non plus exempt de certains travers.
Si j'ai été piqué dans ma fierté, j'ai aussi pris plaisir à concevoir la réponse en forme de prière.
Je mets "résolu" puisque mon problème "mysql" va fonctionner à présent.
Il ne me reste plus qu'à travailler sur le script PHP et je devrais pouvoir m'en sortir par moi-même ce coup-ci.
Bref, merci pour le coup de pouce !
Pour répondre aux problèmes des gens sur les forums, il faut les aimer en quelque sorte, il faut aussi savoir respecter le caractère de chacun et faire avec. Je ne suis pas non plus exempt de certains travers.
Si j'ai été piqué dans ma fierté, j'ai aussi pris plaisir à concevoir la réponse en forme de prière.
Je mets "résolu" puisque mon problème "mysql" va fonctionner à présent.
Il ne me reste plus qu'à travailler sur le script PHP et je devrais pouvoir m'en sortir par moi-même ce coup-ci.
Bref, merci pour le coup de pouce !
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
9
25 août 2009 à 19:38
25 août 2009 à 19:38
<option value="choix1">choisir sa peinture préférée</option> == tu peux cliquer dessus or je pense que tu voulais en faire un titre dans ta liste deroulante, dans ce cas, il serait preferable de faire <optgroup label="un_nom">choisir sa peinture préférée</optgroup> et ce sera a partir de la qu'une variable php sera creer ($_POST['le nom du label']) et tu pourras ainsi traiter les données des internautes
momo-ben2A
Messages postés
105
Date d'inscription
lundi 10 août 2009
Statut
Membre
Dernière intervention
19 décembre 2010
9
25 août 2009 à 19:40
25 août 2009 à 19:40
dsl je me suis tromper c'est avec sa que tu traites les données $_POST['choix'] (j'avais pas vu les select désolé)