Rechercher : dans
Par :

{MySQL} Erreur SQL syntax

Dernière réponse le 20 aoû 2009 à 15:05:31 Marlefeu, le 20 aoû 2009 à 13:00:58 
 Signaler ce message aux modérateurs

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
Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « {MySQL} Erreur SQL syntax » dans :
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...

1

Christounet, le 20 aoû 2009 à 14:35:07

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 On se donne des souvenirs quand on se quitte.
(Marcel Achard)

Répondre à Christounet

2

 Marlefeu, le 20 aoû 2009 à 15:05:31

Je te remerci j'ai utilisé `condition` et ca marche a perfection.

Bonne journée a+

Répondre à Marlefeu