Inserer des données dans une table [Résolu]

Signaler
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
-
Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
-
Bonjour,

je développe un site

quand j'envoie la requête pour insérer les données dans la base il ne marche pas.
voilà le code:
<?php 
/*$id= $_POST['id'];
*/$title= $_POST['title'];
$lieu= $_POST['lieu'];
$remuneration= $_POST['remuneration'];
$date=$_POST['Journaiss_star']."/".$_POST['Moisnaiss_star']."/".$_POST['annais_star'];
$categorie= $_POST['arts'];
$criDomArt= $_POST['castingCriDomArt'];
$criAgeFrom= $_POST['age_de'];
$criAgeTo= $_POST['age_de'];
$criSexe= $_POST['castingCriSexe'];
$objectif=$_POST['criObjectif'];
$criCorpulence=$_POST['star_corpulence'];
$criHairColor=$_POST['star_color_hair'];
$criTypeHair=$_POST['star_hair_type'];
$criSkinColor=$_POST['star_color_skin'];
$criEyesColor=$_POST['star_color_eye'];
$criTPFrom=$_POST['star_poitrine'];
$criTPTo=$_POST['star_poitrine'];
$criPoidsFrom=$_POST['star_weight'];
$criPoidsTo=$_POST['star_weight'];
$criTHFrom=$_POST['star_hanche'];
$criTHTo=$_POST['star_hanche'];
$criWeightFrom=$_POST['star_size'];
$criWeightTo=$_POST['star_size'];
$description = $_POST["description"];

/*la requete d'insertion des des donnees
*/ require('./connect/connect.php');
$sql= "insert into castings(title,lieu,remuneration,date,categorie,criAgeFrom,criAgeTo,criSexe,objectif,criCorpulence,criHairColor,criTypeHair,criSkinColor,criEyesColor,criTPFrom,criTPTo,criPoidsFrom,criPoidsTo,criTHFrom,criTHTo,criWeightFrom,criWeightTo,criWeightTo,)values('$title','$lieu','$remuneration','$date','$categorie','$criAgeFrom','$criAgeTo','$criSexe','$objectif','$criCorpulence','$criHairColor','$criTypeHair','$criSkinColor','$criEyesColor','$criTPFrom','$criTPTo','$criPoidsFrom','$criPoidsTo','$criTHFrom','$criTHTo','$criWeightFrom','$criWeightTo','$description','')";
mysql_query($sql,$link); 

 ?>

4 réponses

Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Bonjour,

Déjà, tu peux faire un Echo de ta requête et t'assurer qu'elle est conforme à ce que tu attends.

Tu peux aussi faire un Print_r de tes variables POST pour voir si elles correspondent à ce que tu veux.

echo "Variables POST : <br>";
print_r($_POST);

$sql= "insert into castings(title,lieu,remuneration,date,categorie,criAgeFrom,criAgeTo,criSexe,objectif,criCorpulence,criHairColor,criTypeHair,criSkinColor,criEyesColor,criTPFrom,criTPTo,criPoidsFrom,criPoidsTo,criTHFrom,criTHTo,criWeightFrom,criWeightTo,criWeightTo,)values('$title','$lieu','$remuneration','$date','$categorie','$criAgeFrom','$criAgeTo','$criSexe','$objectif','$criCorpulence','$criHairColor','$criTypeHair','$criSkinColor','$criEyesColor','$criTPFrom','$criTPTo','$criPoidsFrom','$criPoidsTo','$criTHFrom','$criTHTo','$criWeightFrom','$criWeightTo','$description','')";

Echo "<br> Requete : <br>";
Echo $sql;

mysql_query($sql,$link); 


Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Au passage...si tu suis les recomandations que je t'ai donné tu consteras que tu as un virgule en trop dans ta requête....
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

quand je fais ces requête rien ne sort

echo "Variables POST : <br>";
print_r($_POST);

$sql= "insert into castings(title,lieu,remuneration,date,categorie,criAgeFrom,criAgeTo,criSexe,objectif,criCorpulence,criHairColor,criTypeHair,criSkinColor,criEyesColor,criTPFrom,criTPTo,criPoidsFrom,criPoidsTo,criTHFrom,criTHTo,criWeightFrom,criWeightTo,criWeightTo,)values('$title','$lieu','$remuneration','$date','$categorie','$criAgeFrom','$criAgeTo','$criSexe','$objectif','$criCorpulence','$criHairColor','$criTypeHair','$criSkinColor','$criEyesColor','$criTPFrom','$criTPTo','$criPoidsFrom','$criPoidsTo','$criTHFrom','$criTHTo','$criWeightFrom','$criWeightTo','$description','')";

Echo "<br> Requete : <br>";
Echo $sql;

mysql_query($sql,$link); 
Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Déjà..corrige ta requête : retire la virgule qui se trouve après criWeightTo:
criWeightTo,)values
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

le print_r affiche :
Array ( [id] => [title] => GUIGLO TOURNE [lieu] => FRANCE [remuneration] => A négocier [Journaiss_star] => 07 [Moisnaiss_star] => 04 [annais_star] => 2016 [arts] => Mode / Beauté [castingCriDomArt] => Danseuse [age_de] => 10 [castingCriSexe] => H [criObjectif] => concert [star_corpulence] => Mince [star_color_hair] => Roux [star_hair_type] => Boucles [star_color_skin] => Noire [star_color_eye] => Bleus [star_poitrine] => 87 [star_weight] => 29 [star_hanche] => 88 [star_size] => 49 [description] => good )
Requete :
insert into castings(title,lieu,remuneration,date,categorie,criAgeFrom,criAgeTo,criSexe,objectif,criCorpulence,criHairColor,criTypeHair,criSkinColor,criEyesColor,criTPFrom,criTPTo,criPoidsFrom,criPoidsTo,criTHFrom,criTHTo,criWeightFrom,criWeightTo,criWeightTo)values('GUIGLO TOURNE','FRANCE','A négocier','07/04/2016','Mode / Beauté','10','10','H','concert','Mince','Roux','Boucles','Noire','Bleus','87','87','29','29','88','88','49','49','good','') mais rien ne va dans la base de donnée
Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Je ne vois pas d'erreur dans ta requête..
insert into 
castings
	(
	title
	,lieu
	,remuneration
	,date
	,categorie
	,criAgeFrom
	,criAgeTo
	,criSexe
	,objectif
	,criCorpulence
	,criHairColor
	,criTypeHair
	,criSkinColor
	,criEyesColor
	,criTPFrom
	,criTPTo
	,criPoidsFrom
	,criPoidsTo
	,criTHFrom
	,criTHTo
	,criWeightFrom
	,criWeightTo
	,criWeightTo
	)
values(
	'GUIGLO TOURNE'
	,'FRANCE'
	,'A négocier'
	,'07/04/2016'
	,'Mode / Beauté'
	,'10'
	,'10'
	,'H'
	,'concert'
	,'Mince'
	,'Roux'
	,'Boucles'
	,'Noire'
	,'Bleus'
	,'87'
	,'87'
	,'29'
	,'29'
	,'88'
	,'88'
	,'49'
	,'49'
	,'good'
	,''
)


Peux tu la tester en direct dans ta BDD ? ( via phpmyAdmin par exemple...)
Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Ah si... recompte le nombre de champs sur lesquels que essaies de mettre une valeur et compte le nombre de variables que tu envoies...
Tu as un écrat de 1...
Messages postés
35
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
6 février 2014
1
Le problème vient du 4 eme champ "date" qui est aussi un mot réservé !
Messages postés
30361
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
338
Paraglider, Non le souci ne vient surement pas de là.. d'ailleurs tu peux constater que la question avait été mise en résolu avant que tu ne proposes ta réponse...
Même si le mot 'date' est "normalement" un mot réservé.. rien ne t'empèche de nommer un champ de ta table ainsi.. (fais le test et tu constatera que ça ne pose aucun problème).

La solution à ce souci était simplement un écart entre le nombre de champs indiqués dans la requête et le nombre de valeurs qu'il essayait d'enregistrer... il avait une valeur en trop.
INSERT INTO Table1 (champ1,champ2,champ3) VALUES ('valeur1','valeur2','valeur3','valeur4')

Ce code plantera car j'ai une valeur de trop....