Page 1 sur 1

erreur de syntax sql

Posté : 08 janv. 2007, 23:15
par ma_pomme
voila mon code
$avion=$_POST['avion'];
$Pmax=$_POST['Pmax'];
$CR=$_POST['CR'];
$conso=$_POST['conso'];
$vitesse=$_POST['vitesse'];
$sql="INSERT INTO Avion VALUES ('','$avion','$Pmax','$CR','$conso','$vitesse')";
mysql_query($sql);
et voici la reponse de mysql :?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
je ne comprend pas ou ce trouve l'erreur j'ai pourtant suivi les quelque tuto que j'ai pu trouvé

Posté : 08 janv. 2007, 23:20
par Cyrano
Fais afficher ta requête avant l'exécution, tu auras sans doute des indications utiles. À priori, je dirais que tu as des données avec des caractères parasites non protégés, par exemple, des apostrophes. Une petite lecture de la doc sur mysql_real_escape_string() t'éclairera sûrement :-k

Posté : 08 janv. 2007, 23:37
par ma_pomme
j'ai trouvé en faite j'ai plusieur formulaire sur la meme page qui agissent chacun sur une requete et quand j'en valide un ça valide les autres en meme dans et la premiere requete est un update qui recoit une information vide ce qui créé l'erreur :s

donc ce qu'il me faut c'est soit faire une page par formulaire soit réussir a differencier chaque formulaire :(

Posté : 09 janv. 2007, 00:44
par Cyrano
Les formulaires d'une même page ne communiquent pas entre eux. Où alors tu as des conflits avec des identifiant similaires dans plusieurs des formulaires et encore.

As-tu fait afficher ta requête générée ?

Posté : 09 janv. 2007, 12:33
par ma_pomme
Bonjour,
oui j'ai affiché les requetes mais le traitement ne ce fait pas sur la bonne requete en faite.

voici le code que j'ai et qui ne marche pas :?, en attendant j'ai fait des pages separés. Mais je prefererais avoir tout sur la meme.
<?php
include ("config.php");
if (isset($_POST['kero']))
{
$kero = $_POST['kero'];
//connection sql
$mysql_connect=mysql_connect($db_server,$db_user,$db_passwd) or die(mysql_error());
//selection de la base
  mysql_select_db($db_name, $mysql_connect) or die(mysql_error());
//recupération des données de l'avion
  mysql_query('UPDATE visiteur set prix_kero=' . $kero)
                or die(mysql_error());

echo '<center>le prix du kéro a été changer pour '.$kero.'$ du litre';
echo '<br>Merci Tantang d\'avoir changer le prix</center>';

}
elseif(isset($_POST['avion']))
{
$avion=$_POST['avion'];
$Pmax=$_POST['Pmax'];
$CR=$_POST['CR'];
$conso=$_POST['conso'];
$vitesse=$_POST['vitesse'];

//connection sql
$mysql_connect=mysql_connect($db_server,$db_user,$db_passwd) or die(mysql_error());
//selection de la base
  mysql_select_db($db_name, $mysql_connect) or die(mysql_error());

$sql="INSERT INTO Avion VALUES ('','$avion','$Pmax','$CR','$conso','$vitesse')";

mysql_query($sql) or die(mysql_error());
echo '<center>Vous avez bien ajouter le '.$avion.'';
}
elseif(isset($_POST['type']))
{
$type=$_POST['type'];
$coefC=$_POST['coefC'];
$coefV=$_POST['coefV'];
$prix=$_POST['prix'];
$vie=$_POST['vie'];

//connection sql
$mysql_connect=mysql_connect($db_server,$db_user,$db_passwd) or die(mysql_error());
//selection de la base
  mysql_select_db($db_name, $mysql_connect) or die(mysql_error());

$sql="INSERT INTO Moteur VALUES ('','$type','$coefC','$coefV','$prix','$vie')";
mysql_query($sql) or die(mysql_error());

echo '<center>Vous avez bien ajouter un moteur de type'.$type.'';
}
else
{
?>
<hr>
<center>
<h2>Changer le prix du Kéro</h2>
<form name="kero" method="post">
<p>Nouveau prix du kéro:
<input type="text" name="kero"><br>
<input type="submit" name="Kero" value="changer le prix du kéro">

<hr>

<h2>Ajouter un moteur</h2>
<form name="moteur" method="post">
<p>Type du moteur (I,II,etc):
<input type="text" name="type">
<p>Coeficient de reduction de la conssomation:
<input type="text" name="coefC">
<p>Coeficient d'augmentation de la vitesse:
<input type="text" name="coefV">
<p>Prix du moteur:
<input type="text" name"prix">
<p>Durée de vie du moteur (en heure)
<input type="text" name="vie">
<br><input type="submit" name="Moteur" value="Ajouter">

<hr>

<h2>Ajouter un avion</h2>
<form name="Avion" method="post">
<p>Nom de l'avion:
<input type="text" name="avion">
<p>Passager max:
<input type="text" name="Pmax">
<p>Capacité du reservoir:
<input type="text" name="CR">
<p>Conssomation de base:
<input type="text" name="conso">
<p>Vitesse de base:
<input type="text" name="vitesse"><br>
<input type="submit" name="Aavion" value="Ajouter">
</center>
<?php
}
?>

Posté : 09 janv. 2007, 13:33
par Cyrano
Pas très surprenant que tu aies des problèmes : Voici la partie HTML remise en forme avec une indentation pour illustrer les explications qui suivent :

Code : Tout sélectionner

<hr> <center> <h2>Changer le prix du Kéro</h2> <form name="kero" method="post"> <p>Nouveau prix du kéro: <input type="text" name="kero"><br> <input type="submit" name="Kero" value="changer le prix du kéro"> <hr> <h2>Ajouter un moteur</h2> <form name="moteur" method="post"> <p>Type du moteur (I,II,etc): <input type="text" name="type"> <p>Coeficient de reduction de la conssomation: <input type="text" name="coefC"> <p>Coeficient d'augmentation de la vitesse: <input type="text" name="coefV"> <p>Prix du moteur: <input type="text" name"prix"> <p>Durée de vie du moteur (en heure) <input type="text" name="vie"><br> <input type="submit" name="Moteur" value="Ajouter"> <hr> <h2>Ajouter un avion</h2> <form name="Avion" method="post"> <p>Nom de l'avion: <input type="text" name="avion"> <p>Passager max: <input type="text" name="Pmax"> <p>Capacité du reservoir: <input type="text" name="CR"> <p>Conssomation de base: <input type="text" name="conso"> <p>Vitesse de base: <input type="text" name="vitesse"><br> <input type="submit" name="Aavion" value="Ajouter"> </center>
Tu as trois formulaires non fermés et par conséquent imbriqués ce qui est interdit et en outre pas fonctionnel. Tu ne peux pas récupérer d'informations correctes de cette manière.

Même en HTML 4, certaines balises à fermeture optionnelles devraient être fermées et d'autres ont une fermeture obligatoire, <form> en fait partie.

Commence par corriger ça et refais des essais. Reviens ensuite avec les détails sur l'évolution du traitement.

Posté : 09 janv. 2007, 14:22
par ma_pomme
suis-je bete effectivement c'est un oublie facheux cela marche parfaitement maintenant :roll:

Merci cyrano pour ton aide ^^