Les Allergies
Alimentaires
Posez votre question Signaler

{MySQL} Erreur SQL syntax [Résolu]

Marlefeu - Dernière réponse le 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
Lire la suite 

{MySQL} Erreur SQL syntax »

Suggestions
2 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Je te remerci j'ai utilisé `condition` et ca marche a perfection.

Bonne journée a+
Ajouter un commentaire
Ce document intitulé « {MySQL} Erreur SQL syntax » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?