[php] Problème avec INSERT INTO ... VALUES

tom@ -  
 gLUK -
Bonjour,
je suis en train d' essayer un script en PHP pour faire apparaitre un menu qu' on peut personnaliser.Il y a une erreur en utilisant INSERT INTO mon_menu VALUES ().
(Je suis debutant) Malgré des recheches dans les documentations officielles (mysql & php) et sur le net, je ne parviens pas à comprendre le problème.

J' ai créé une base de donnée avec ce qui suit :

CREATE TABLE mon_du_menu (
id_menu int(10) unsigned NOT NULL auto_increment,
id_node_menu int(10) unsigned DEFAULT '0' NOT NULL,
titre_menu text NOT NULL,
lien_menu text NOT NULL,
pos_x int(11) DEFAULT '0' NOT NULL,
pos_y int(11) DEFAULT '0' NOT NULL,
cible_menu text,
PRIMARY KEY (id_menu),
KEY id_menu (id_menu, id_node_menu)
);

En suite, quand je veux ajouter des valeurs dans ma base de donnée, j' ai l' erreur :

requête SQL:

INSERT INTO airwick_menu
VALUES (
'1', '0', 'PhpMyAdmin', 'http://127.0.0.1/mysql/', '111', '10'
)

#1136 - Column count doesn't match value count at row 1


(Ps: http://127.0.0.1/mysql/ est le lien pour ouvrir la PhpMyAdmin.)

Voilà les premieres lignes que j' ai utilisées et où il y aurait une erreur :

INSERT INTO airwick_menu VALUES ('1','0','PhpMyAdmin','http://127.0.0.1/mysql/','111','10');
INSERT INTO airwick_menu VALUES ('2','0','DoCumentations','',212','10');
INSERT INTO airwick_menu VALUES ('3','0','Edit-Scripts','','323','10');
INSERT INTO airwick_menu VALUES ('4','0','CçM','','434','10');
INSERT INTO airwick_menu VALUES ('5','0','Free','','545','10');
....


Pouvez-vous m' aider ?

Tom
A voir également:

7 réponses

maily Messages postés 7560 Statut Contributeur 453
 
Bonjour!

Ta première colonne correspond à un entier auto incrémenté. Donc, normalement, tu ne dois pas mettre de valeur. Ou alors, sans les ''!

:)

INSERT INTO airwick_menu ( id_node_menu, titre_menu, lien_menu, pos_x, pos_y) 
VALUES (0,'PhpMyAdmin','http://127.0.0.1/mysql/',111,10); 
3
Canard007 Messages postés 5936 Statut Contributeur 215
 
en fait manque une colonne.. faut pas mettre defaut pour la premiere?
0
TORNADE973
 
pour faire un insert dans un table il faut aussi mettre le nom des champs dans l'ordre du values.
exemple : $sql=" insert into NomDelaTable (nomchamp1, nomchamp2) values ('$champ1','$champ2')";
0
espritcool
 
Je te conseil pour le colonne en autoincrément de mettre NULL comme valeur vu que celle ci ne doit pas être défini à la main

http://www.bibliotheque-des-esprits.com/formation-tutoriaux/formation-php/fonction-insert-into-Php.php
0

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

Posez votre question
Aerandir
 
Salut,

Fait comme ceci :

INSERT INTO airwick_menu VALUES ('','0','PhpMyAdmin','http://127.0.0.1/mysql/','111','10',IS NULL);

Le 1er champ est auto-incrémenté donc il ne faut pas rentrer de valeurs juste mettre des quotes avec rien entres les deux.
Dans Values tu renseigne six champs or ta table en contient sept donc il faut que tu renseigne les sept champs ou si tu veux remplir un champ pour le moment tu met IS NULL( en majuscule de préférence) si le champ peut être nul.

Voila qui devrait fonctionner, j'espère avoir aider.
0
Aerandir
 
Je m'auto corrige :

Tu met IS NULL si tu ne veux pas remplir un chams pour le moment.
0
espritcool
 
Je pense qu'il avait la réponse mdr

ps : bibliotheque-des-esprit est devenu www.formation-programmation.com
0
gLUK
 
Bonjour,

Pour éviter ce genre de problème j'utilise PHPSIMPLEDB, c'est un ORM light qui se presente sous la forme d'un portail WEB.

Du coup tu manipules directement des objets à la place des requetes.
0