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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 - 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); 

 ?>

4 réponses

jordane45 Messages postés 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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 37733 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2023 342
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
Rejoignez-nous