Page 1 sur 2

Erreur syntaxe requete mysql ???

Posté : 16 août 2006, 09:35
par laplumaencre
bonjour a tous, j'ai des message d'erreur et ma requet ne fonctionne pas. voivi la requete et le message d'erreur ! merci.
$sql = mysql_query("INSERT INTO `fiche` (`num_fiche`, `date_fiche`, `nom_projet`, `nbre_imp_clt`,
										`nbre_imp_com`, `marque`, `visuel`, `origine`, `commercial`, 
										`assis_com`, `client`, `tel_client`, `mail_client`, `adresse_client`, 
										`contact`, `design_motif`, `type_motif`, `type_realisation`, 
										`zone_realisation`, `dim_largeur`, `dim_longueur`, `dim_prof`, 
										`type_cordon`, `zone_type_cordon`, `color_cordon`, `zone_color_cordon`, 
										`type_ampoule`, `zone_type_ampoule`, `color_ampoule`, `zone_color_ampoule`, 
										`type_luciole`, `gam_prod_luciole`, `zone_gam_prod_luciole`, `color_luciole`, 
										`zone_color_luciole`, `guir_sapin`, `zone_guir_sapin`, `tapis_sapin`, 
										`texte_decor`, `typo`, `type_ecrit`, `logo`, `type_fixa`, `zone_type_fixa`, 
										`qte`, `budget`, `remarque`, `faisabilite`, `prix_revient`, `poids`, `puissance`)
					VALUES ('NULL', '$date', '$nom_projet', '$nbre_imp_clt', '$nbre_imp_com', '$marque', 
							'$visuel', '$origine', '$commercial', '$assis_com', '$client', '$tel_client', 
							'$mail_client', '$adresse_client', '$contact', '$design_motif', '$type_motif', 
							'$type_realisation', '$zone_realisation', '$dim_largeur', '$dim_longueur', 
							'$dim_prof', '$type_cordon', '$zone_type_cordon', '$color_cordon', '$zone_color_cordon', 
							'$type_ampoule', '$zone_type_ampoule', '$color_ampoule', '$zone_color_ampoule', 
							'$type_luciole', '$gam_prod_luciole', '$zone_gam_prod_luciole', '$color_luciole', 
							'$zone_color_luciole', '$guir_sapin', '$zone_guir_sapin', '$tapis_sapin', '$texte_decor', 
							'$typo', '$type_ecrit', '$logo', '$type_fixa', '$zone_type_fixa', '$qte', '$budget', 
							'$faisabilite', '$prix_revient', '$poids', '$puissance'") 
		or die (mysql_error());
Message d'erreur !
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 '' at line 2

Posté : 16 août 2006, 10:07
par laplumaencre
bon ma requete est réparer , mais du coup maintenant j'ai comme message d'erreur Column count doesn't match value count at row 1 et là, je vois pas du tout ce que c'est?!! merci

Posté : 16 août 2006, 10:09
par zeus
Ce message d'erreur veut dire que tu as un nombre de champs et un nombre de valeurs différents.

Je te conseille de les recompter ;)

Posté : 16 août 2006, 10:22
par laplumaencre
Merci Zeus en effet il me manquait une valeur. merci

Posté : 16 août 2006, 10:31
par laplumaencre
Bon maintenant ;-) j'ai besoins de récupérer le n° de fiche créer (auto incrémenté) j'ai esssayé ça car j'ai regardé sur le forum avant mais je récupere pas le n° de fiche
$num_fiche=mysql_query("select_last_insert_id()");
echo $num_fiche;

Posté : 16 août 2006, 10:43
par icebreak
mysql_insert_id
(PHP 3, PHP 4, PHP 5)

mysql_insert_id -- Retourne l'identifiant généré par la dernière requête INSERT MySQL

Description
int mysql_insert_id ( [resource link_identifier] )

Posté : 16 août 2006, 10:50
par laplumaencre
euh j'ai essayé et j'ai un message d'erreur on utilise cette fonction php??
Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in C:\serveurs-web\lcx\easyfiche\fichedes.php on line 773

Posté : 16 août 2006, 10:55
par laplumaencre
C'est bon je récupère bien le dernier n° créer merci. j'ai fais comme ça
$num_fiche=mysql_insert_id();
echo $num_fiche;
Je viens de remarquer que m'a requete du début, ne me récupere pas les champs nommé zone_...., ils correspondent a un champ qui apparait suite a un choix ds une liste déroulante, mais leur valeur n'est pas récupéré...

Posté : 16 août 2006, 11:03
par ouckileou
Voir ici d'abord :
PHP+SQL : Etapes à suivre pour résoudre les problèmes

Avec ce que tu donnes là, on ne peut pas t'aider de toute façon

Posté : 16 août 2006, 11:05
par laplumaencre
Merci Modérateur mais j'y suis allé ce matin avant de poster ce topic :-)
PS: Je gallère un peu je suis en stage et tout seul à travaillé sur php/mysql ici ...

Posté : 16 août 2006, 11:10
par ouckileou
Merci Modérateur mais j'y suis allé ce matin avant de poster ce topic :-)
C'est bien, alors il faut suivre ce qui est marqué :
alors vous pouvez venir demander de l'aide sur le forum.
Avec ces trois informations indispensables :
SGBD utilisé et en quelle version, code SQL exécuté et message d'erreur obtenu
Là, ce n'est pas le code SQL exécuté que tu nous donnes, mais le code PHP qui va le générer, ce n'est pas pareil.

En regardant ce code tu verras déjà si tes valeurs sont présentes. Si elles ne sont pas là, c'est qu'elles ne sont pas transmises par exemple alors : echo de contrôle, on regarde si elles sont transmies, on vérifie les noms de variables utilisés etc etc.

ça s'appelle : le débuggage

Bon courage

Posté : 16 août 2006, 11:11
par laplumaencre
Voici mon code qui récupère la valeur du champs qui apparait si l'utilisateur choisit ds la liste deroulante comme type de fixation "globle preciser diametre du mat" ...mais je la récupere pas et pourtant le test de si null fonctionne ??!
if ($_POST["type_fixa"]=="GLOBE PRECISER DIAMETRE DU MAT") {
	if ($_POST["zone_type_fixa"]=="") {
		echo "Veuillez saisir le diamètre du mat si vous choisissez comme \"Type de fixation\" \"GLOBE PRECISER DIAMETRE DU MAT\" !<br>";
	} else {
		$zone_type_fixa=$POST["zone_type_fixa"];
		}
} else {
      $type_fixa=$_POST["type_fixa"];
}

Posté : 16 août 2006, 11:12
par zeus
Ce que ouckileou te demande, c'est d'afficher la requete, de la vérifier (particulièrement les champs qui posent problème)

Avec les informations que tu nous donnes, je n'arrive vraiment pas à comprendre ton problème :-k
Et, visiblement, je ne suis pas le seul ;)

Posté : 16 août 2006, 11:13
par laplumaencre
la requete sql elle est tout au debut du topic
et le code php juste au dessus merci pour votre aide et patience ;-)

Posté : 16 août 2006, 11:19
par laplumaencre
J'ai trouvé j'ai oublié le _ sur le $_POST, et avec le copier coller j'ai avais foutu partout ;-) merci a tous .