Page 1 sur 1

Problème requête SQL - Site perso

Posté : 19 sept. 2007, 13:49
par Ketq
Bonjour,

Je suis en train de coder un site pour mon club de foot. Je suis actuellement en train d'essayer de créer un module admin pour ajouter directement les prochains matchs. J'ai créée ma base de données ...

Mon problème est que je n'arrive pas à inscrire mes valeurs dans ma base de données.

Voici le code :
<? 
if($_GET['add']=="1" && $_GET['edit']==NULL)
{
	if($_GET['nouveau']=="1")
	{
	$nouveau = $_GET['nouveau'];
	}
		if($nouveau=="1")
		{
		@mysql_connect("localhost","xxx","xxx");
		@mysql_select_db("ust_foot");
		$sql = "INSERT INTO matchsseniors (id,date,match,score,heure,lieu,type,joueur1,rdv) VALUES('','$date','$match','$score','$heure','$lieu','$type','$joueur1','$rdv')";
		$req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
		$nouveau==NULL;
		echo "Le match a bien été ajouté.";
		}
		
echo "<form method=\"post\" action=\"?add=1&nouveau=1\">";
echo "Date du match :<div align=\"left\"><input name=date type=text size=50></div><br>";
echo "Match :<div align=\"left\"><textarea name=match cols=50 rows=1></textarea></div><br>";
echo "Score :<div align=\"left\"><textarea name=score cols=50 rows=1></textarea></div><br>";
echo "Heure du match :<div align=\"left\"><textarea name=heure cols=50 rows=1></textarea></div><br>";
echo "Lieu du match :<div align=\"left\"><textarea name=lieu cols=50 rows=1></textarea></div><br>";
echo "Type de match :<div align=\"left\"><textarea name=type cols=50 rows=1></textarea></div><br>";
echo "Heure du rendez-vous :<div align=\"left\"><textarea name=rdv cols=50 rows=1></textarea></div><br>";
echo "<input type=\"submit\" value=\"ENREGISTRER\"> - <input type=\"button\" onclick=\"self.location.href=\'http://ust.foot.free.fr/admin/\'\" value=\"RETOUR\">";
echo "</form><br>";		
}
elseif($_GET['edit']=="1" && $_GET['add']==NULL)
{
$idnews = $_GET['idnews'];
	if($_GET['update']=="1")
	{
	$update = $_GET['update'];
	}
		if($update=="1")
		{
		@mysql_connect("localhost","xxx","xxx");
		@mysql_select_db("ust_foot");
		$sql = "UPDATE matchsseniors SET date='$date',match='$match',score='$score',heure='$heure',lieu='$lieu',type='$type',joueur1='$joueur1',rdv='$rdv' WHERE id='$idnews' ";
		$req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
		$update==NULL;
		}
			@mysql_connect("localhost","xxx","xxx");
			@mysql_select_db("ust_foot");
			$sql = "SELECT * FROM matchsseniors WHERE id='$idnews'";
			$req = @mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
			while($data = @mysql_fetch_array($req))
			    { 
			    $id = $data['id'];
				$date = $data['date'];
				$match = $data['match'];
			    $score = $data['score'];
				$heure = $data['heure'];
				$lieu = $data['lieu'];
			    $type = $data['type'];
				$joueur1 = $data['joueur1'];
				$rdv = $data['rdv'];
				}
			mysql_close();


echo "<form method=\"post\" action=\"?edit=1&update=1&idnews=$idnews\">";
echo "Date du match :<div align=\"left\"><input name=date type=text size=50 value='$date'></div><br>";
echo "Match :<div align=\"left\"><textarea name=match cols=50 rows=1>$match</textarea></div><br>";
echo "Score :<div align=\"left\"><textarea name=score cols=50 rows=1>$score</textarea></div><br>";
echo "Heure du match :<div align=\"left\"><textarea name=heure cols=50 rows=1>$heure</textarea></div><br>";
echo "Lieu du match :<div align=\"left\"><textarea name=lieu cols=50 rows=1>$lieu</textarea></div><br>";
echo "Type de match :<div align=\"left\"><textarea name=type cols=50 rows=1>$type</textarea></div><br>";
echo "Heure du rendez-vous :<div align=\"left\"><textarea name=rdv cols=50 rows=1>$rdv</textarea></div><br>";
echo "<input type=\"submit\" value=\"ENREGISTRER\"> - <input type=\"button\" onclick=\"self.location.href=\'http://ust.foot.free.fr/admin\'\" value=\"RETOUR\">";
echo "</form><br>";
}
?>
En validant ce formulaire pour rentrer mes valeurs dans ma base de donées, voici le message d'erreur que j'ai :

Code : Tout sélectionner

Erreur SQL ! UPDATE matchsseniors SET date='Dimanche 23 septembre 2007',match='Dugny - Thierville',score='',heure='15H00',lieu='Dugny',type='Coupe Lorraine',joueur1='',rdv='' WHERE id='7' 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 'match='Dugny - Thierville',score='',heure='15H00',lieu='Dugny',type='Coupe Lorra' at line 1
Au passage, les valeurs entrées depuis la base de données apparaissent bien dans le formulaire, mais je ne peux pas éditer les ancienne valeurs (ce qui revient donc à inscrire mes valeurs dans la base de données).

Cela fait 3 jours que je recherche mon erreur et en vain. J'espère que vous pourrez m'aider pour trouver mon erreur.

Merci.

Posté : 19 sept. 2007, 13:54
par Cyrano
Tu utilises des noms de colonnes qui sont des mots réservés en SQL : "date", "match" et "type".

Pour pouvoir les utiliser, essaye en les mettant entre ``, ce qui donnerait :

Code : Tout sélectionner

UPDATE matchsseniors SET `date` = 'Dimanche 23 septembre 2007', `match` = 'Dugny - Thierville', score = '', heure = '15H00', lieu = 'Dugny', `type` = 'Coupe Lorraine', joueur1 = '', rdv = '' WHERE id='7'

Posté : 19 sept. 2007, 13:56
par zeus
Modération :
Ketq, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Posté : 19 sept. 2007, 14:16
par Ketq
Merci Cyrano c'était effectivement ça ;)

Posté : 19 sept. 2007, 14:28
par albat
Rappelons que même si l'on peut s'en sortir en utilisant les apostrophes comme l'a indiqué Cyrano,
il est impératif de veiller à ne pas utiliser de mots-clés dans les noms de ses tables et ses champs. :non:

Modération :
Ketq, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

Posté : 19 sept. 2007, 15:17
par Ketq
Voila c'est fait ;)