{MySQL} Erreur SQL syntax

Résolu/Fermé
Marlefeu - 20 août 2009 à 13:00
 Marlefeu - 20 août 2009 à 15:05
Bonjour,
J'ai un souci sur une page PHP, j'ai passez des heures a chercher sans resultats, merci d'avance.

Quand je met à la ligne 76 :
					mysql_query("INSERT INTO anneaux (id, lvl, image, nom, recette, caract, remarque) VALUES ('$id','$lvl','$image','$nom','$recette','$caract','$remarque')") or die(mysql_error());

Ca fonctionne parfaitement mais quand je veut ajouter les condition comme si dessous
					mysql_query("INSERT INTO anneaux (id, lvl, image, nom, recette, caract, condition, remarque) VALUES ('$id','$lvl','$image','$nom','$recette','$caract','$condition','$remarque')") or die(mysql_error());


Ca me met :
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 'condition, remarque) VALUES ('10','51','image test','nom test','recette test','c' at line 1



Voici la page :

<center><?php
if (empty($_GET['index.php?page']))
{
//	header("location: erreur.php?err=access_denied");
}


switch ($_GET['action'])
{
	case "creation":
	
	
	
	
	//Creer l'id et definie les autre variables
	mysql_connect($items['host'], $items['user'], $items['password']) or die(mysql_error());
   	mysql_select_db($items['db']) or die(mysql_error());
   	$reponseid = mysql_query("SELECT COUNT(*) AS nombre FROM anneaux") or die(mysql_error());
   	$donneesid = mysql_fetch_array($reponseid);
   	mysql_close();
   	$id = $donneesid['nombre'] + 1;
   	$lvl = Securite::bdd($_POST['lvl']);
	$image = Securite::bdd($_POST['image']);
	$nom = Securite::bdd($_POST['nom']);
	$recette = Securite::bdd($_POST['recette']);
	$caract = Securite::bdd($_POST['caract']);
	$condition = Securite::bdd($_POST['condition']);
	$remarque = Securite::bdd($_POST['remarque']);
	$validation = Securite::bdd($_POST['validation']);

	


	if($validation == "oui")
	{
		if (empty($lvl) OR empty($nom) OR empty($image) OR empty($recette) OR empty($caract))
		{
		echo "<p>Un des champs est resté vide !!!</p>";
		echo "<br /><a href='javascript:history.go(-1)'>Retour</a>";			
		}
		else
		{
			
		//verifie si le username existe déjà
		mysql_connect($items['host'], $items['user'], $items['password']) or die(mysql_error());
		mysql_select_db($items['db']) or die(mysql_error());
		$reponse = mysql_query("SELECT COUNT(*) AS nombre FROM anneaux WHERE nom='$nom'") or die(mysql_error());
		$donnees = mysql_fetch_array($reponse);
		mysql_close();
		$test = $donnees['nombre'];
			
    		if ($test == 0)
			{
				
			//verifie si l'id existe déjà
			mysql_connect($items['host'], $items['user'], $items['password']) or die(mysql_error());
			mysql_select_db($items['db']) or die(mysql_error());
			$ReponseTestID = mysql_query("SELECT COUNT(*) AS nombre FROM anneaux WHERE id='$id'") or die(mysql_error());
			$DonneesID = mysql_fetch_array($ReponseTestID);
			mysql_close();
			$TestID = $DonneesID['nombre'];
				
			if ($TestID == 0)
				{
					
					
					
					
					
					
					if (1 == 1)
					{
					 
					mysql_connect($items['host'], $items['user'], $items['password']) or die(mysql_error());
					mysql_select_db($items['db']) or die(mysql_error());
					mysql_query("INSERT INTO anneaux (id, lvl, image, nom, recette, caract, condition, remarque) VALUES ('$id','$lvl','$image','$nom','$recette','$caract','$condition','$remarque')") or die(mysql_error());
					mysql_close();
					echo "<br><br><br><center><p class=\"titre\">Votre objet a bien été ajouté !</p>";
					}
					else
					{
					echo "Erreur : veuillez contacter un administrateur !!!<br />";
					echo "<br /><a href='javascript:history.go(-1)'>Retour</a>";
					}
					
					
					
					
					
				}
				else
				{
				echo "Erreur : ID veuillez contacter un administrateur !!!";
				echo "<br /><a href='javascript:history.go(-1)'>Retour</a>";
				}
				
				
				
				
				
				
			}
			else
			{
			echo "Erreur: cet objet existe déjà !!!";
			echo "<br /><a href='javascript:history.go(-1)'>Retour</a>";
			}
		}
	}
	else
	{
	echo "Il faut confirmer l'ajout de l'objet<br /><br /><a href='javascript:history.go(-1)'>Retour</a>";
	}


	break;
	
	default:


		echo "<br><br><center>
		<p class=\"title\" size=\"10\"><b>Ajout d'un anneau</b></p>
		<br><br><br>
		<form action=\"index.php?page=edit_anneaux&action=creation\" method=\"POST\">
			<table>
				<tr>
					<td>Level : </td>
					<td><input type=\"text\" name=\"lvl\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Image : </td>
					<td><input type=\"text\" name=\"image\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Nom : </td>
					<td><input type=\"text\" name=\"nom\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Recette : </td>
					<td><input type=\"text\" name=\"recette\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Caracteristique : </td>
					<td><input type=\"text\" name=\"caract\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Condition : </td>
					<td><input type=\"text\" name=\"condition\" size=\"40\"></td>
				</tr>
				<tr>
					<td>Remarque : </td>
					<td><input type=\"text\" name=\"remarque\" size=\"40\"></td>
				</tr>
				
				
				
			</table><br><br>Etes vous sure de vouloir modifier cet objet?<br><br>
			<INPUT TYPE=\"radio\" NAME=\"validation\" VALUE=\"oui\">J'accepte
			<INPUT TYPE=\"radio\" NAME=\"validation\" VALUE=\"non\">Je refuse
			<br><br><br><br><br><br>
			<input type=\"submit\" name=\"submit\" value=\"Valider l'ajout\"></center>
		</form></center>";
	break;
}
?></center>



Merci d'avance
A voir également:

2 réponses

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 384
20 août 2009 à 14:35
Bonjour,

Le nom de ton champs condition est un mot réservé dans Mysql, tu as deux possibilités:
1°) soit tu changes le nom de ton champs
2°) soit tu entoure les noms de tes champs dans l'ordre insert par le caractère `, par exemple `condition`
A plus
0
Je te remerci j'ai utilisé `condition` et ca marche a perfection.

Bonne journée a+
0