pb requete

Rom1
Invité n'ayant pas de compte PHPfrance

22 mars 2006, 12:32

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]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mars 2006, 12:58

" 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 :)

Eléphanteau du PHP | 36 Messages

22 mars 2006, 13:03

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é

Avatar du membre
ViPHP
ViPHP | 3008 Messages

22 mars 2006, 13:06

$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')";

Rom1
Invité n'ayant pas de compte PHPfrance

22 mars 2006, 13:11

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 ++