Inserer des données dans une table

Résolu
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
- 4 févr. 2014 à 10:39
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
- 6 févr. 2014 à 11:41
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); 

 ?>
A voir également:

4 réponses

jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
4 févr. 2014 à 10:45
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); 


0
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
4 févr. 2014 à 10:55
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....
0
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

4 févr. 2014 à 11:08
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); 
0
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
4 févr. 2014 à 11:17
Déjà..corrige ta requête : retire la virgule qui se trouve après criWeightTo:
criWeightTo,)values
0
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

4 févr. 2014 à 11:34
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
0
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
4 févr. 2014 à 11:45
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...)
0
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
4 févr. 2014 à 11:47
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...
0
Paraglider
Messages postés
35
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
6 février 2014
1
6 févr. 2014 à 00:01
Le problème vient du 4 eme champ "date" qui est aussi un mot réservé !
0
jordane45
Messages postés
35769
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
6 févr. 2014 à 11:41
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....
0