Supprimer une ligne d'une table MySQL

Supprimer une ligne d'une table MySQL - SQL/NoSQL - Programmation

Marsh Posté le 14-11-2004 à 01:44:25    

Bonsoir,  
 
J'ai une base de données qui contient une table dont les champs sont :
index (clef primaire + auto incrémentale), type, nom, date.
 
J'ai, dans une page php :  

Code :
  1. ...
  2. $connection = mysql_connect($host,$user,$password)
  3.  or die ("couldn't connect to server" );
  4. $db = mysql_select_db($database,$connection)
  5.  or die ("Couldn't select database" );
  6. $numero = $_POST['noindex'];
  7. $query = "DELETE FROM competitions WHERE index='$numero'";
  8. $result = mysql_query($query)
  9.  or die ("Couldn't execute query." );
  10. ...


 
Il plante en me disant Couldn't execute query. Par contre si je fais fais la même chose avec un ...WHERE type='$var_recue_de_type'... et bien ca passe.
Comment dois-je faire pour pouvoir supprimer avec le champ index comme critère de recherche ??
 
Merci

Reply

Marsh Posté le 14-11-2004 à 01:44:25   

Reply

Marsh Posté le 14-11-2004 à 02:07:11    

remplace  
 

or die ("Couldn't execute query." );


 
par
 

or die (mysql_error())


 
et montre ce que ca dit


Message édité par Profil supprimé le 14-11-2004 à 02:07:22
Reply

Marsh Posté le 14-11-2004 à 02:20:43    

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 'index='2'' at line 1

Reply

Marsh Posté le 14-11-2004 à 10:18:46    

Enlève les quotes ('), ton index est numérique, non ? :)

Reply

Marsh Posté le 14-11-2004 à 13:58:55    

Ok sans les quotes il me dit :
 
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 'index=2' at line 1

Reply

Marsh Posté le 14-11-2004 à 14:16:50    

y a bien le champ index dans la table competitions ? :D
 
fais la même requête sous mysql admin pour voir.

Reply

Marsh Posté le 14-11-2004 à 14:33:29    

le champ index existe bien oui, defini comme INTEGER.
En le faisant depuis la ligne de commande, il me dit pareil ! Par contre si j'utilise un autre criètre tel que le "nom" au lieu de l'index, la suppression marche parfaitement.... je comprends plus rien... HELP :cry:

Reply

Marsh Posté le 14-11-2004 à 14:57:30    

index doit être un mot réservé de mySql, c'est pour ça que ça marche pas.
Si tu peux, modifie le nom du champ en index_comptetition par exemple.

Reply

Marsh Posté le 14-11-2004 à 14:58:04    

...et en mettant competition.index=2?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-11-2004 à 14:58:47    

skeye a écrit :

...et en mettant competition.index=2?:o


 
+1, j'y avais même pas pensé :D
 
mais de toute façon, appeler un champ avec un nom réservé, c'est pas terrible ;)

Reply

Marsh Posté le 14-11-2004 à 14:58:47   

Reply

Marsh Posté le 14-11-2004 à 15:04:25    

Ouais c'était bien ca.... quel c** je suis :D
 
Merci à vous !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed