Page 1 sur 1

pb requete

Posté : 22 mars 2006, 12:32
par Rom1
Salut,


J'ai un souci de requete :

Code : Tout sélectionner

$sql="INSERT INTO vol VALUES('$n_vol',$Ntype,31,$_POST['continent'],'$_POST['ville']','$_POST['h_depart']','$_POST['h_arrive']',0,'$_POST['frequence']');";
j'ai cette erreur :

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in aa.php on line 49

et voici la table :
create table vol(
n_vol varchar(10) constraint cle_vol primary key,
n_type integer,
duree_vol integer constraint dom_duree_vol check (duree_vol between 30 and 1@--> 440),
code_continent integer,
destination varchar(20) not null,
vol_h_depart time,
vol_h_arrivee time,
nb_h_vol integer,
frequence varchar(8) constraint dom_frequence check (frequence in ('lundi','@--> mardi','mercredi','jeudi','vendredi','samedi','dimanche')),
constraint n_type_cle_type_avion foreign key (n_type) references type_avion @--> (n_type),
constraint code_continent_cle_continent foreign key (code_continent) referen@--> ces continent (code_continent));


Merci de votre aide.



[/code]

Posté : 22 mars 2006, 12:58
par Ryle
" Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in aa.php on line 49 "

"Parse error" c'est une erreur php, pas sql... il doit te manquer un point-virgule, une guillemet ou une apostrophe dans les lignes précédentes... :)

Pour ta requête par contre, il me semble qu'il faut sortir les $_POST des guillemets (à confirmer), et ne pas mettre de point-virgule à la fin de la requête pour du mysql
$sql="INSERT INTO vol VALUES('$n_vol',$Ntype,31,".$_POST['continent'].",'".$_POST['ville']."','".$_POST['h_depart']."','".$_POST['h_arrive']."',0,'".$_POST['frequence']."')"; 
Personnellement, je préconise également de toujours mettre les noms des colonnes, ca évite les confusions ou les problèmes d'ordre lorsque l'on rajoute un champ dans la table :)

Posté : 22 mars 2006, 13:03
par Reman
bonjour,

Je pense que ton probleme provient des quotes que tu utilises,

essaie de passer tes variables POST dans des variables locales, et utilises tes variables locales dans ta requete
$continent = $_POST['continent'];
$ville = $_POST['ville'];
$h_depart = $_POST['h_depart'];
$h_arrive = $_POST['h_arrive'];
$frequence = $_POST['frequence'];

$sql="INSERT INTO vol VALUES('$n_vol',$Ntype,31,$continent,'$ville','$h_depart','$h_arrive',0,'frequence');";
edit : le temps que je poste on avait déjà répondu, désolé

Posté : 22 mars 2006, 13:06
par charabia
$cont=$_POST['continent'];
$ville=$_POST['ville'];
$h_depart=$_POST['h_depart'];
$h_arrive=$_POST['h_arrive'];
$frequence=$_POST['frequence'];
$sql="INSERT INTO vol(n_vol,n_type,duree_vol,code_continent,destination,vol_h_depart,vol_h_arrivee,nb_h_vol,frequence) VALUES('$n_vol','$ntype','31','$cont','$ville','$h_depart','$h_arrive','0','$frequence')";

Posté : 22 mars 2006, 13:11
par Rom1
Salut,

Merci a tous ca a marché.

J'ai pris cette solution :

$continent = $_POST['continent'];
$ville = $_POST['ville'];
$h_depart = $_POST['h_depart'];
$h_arrive = $_POST['h_arrive'];
$frequence = $_POST['frequence'];

$sql="INSERT INTO vol VALUES('$n_vol',$Ntype,31,$continent,'$ville','$h_depart','$h_arrive',0,'frequence');";

a ++