Pb syntaxe requète DELETE (php)
Résolu
Gwendo69
Messages postés
147
Date d'inscription
Statut
Membre
Dernière intervention
-
Gwendo69 Messages postés 147 Date d'inscription Statut Membre Dernière intervention -
Gwendo69 Messages postés 147 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
lorsque j'essaie de faire ces requêtes.
//récupère l'identifiant de l'artiste
$identifiant = 'SELECT id_artiste FROM artiste WHERE nom_artiste="'.$choix.'"';
//supprime les données inscrites dans la table
$supprimer = 'DELETE FROM information WHERE id_type="1" AND id_artiste="'.$identifiant.'"';
//lance le req
mysql_query ($identifiant) or die ('Erreur SQL !'.$identifiant.'<br />'.mysql_error());
mysql_query ($supprimer) or die ('Erreur SQL !'.$supprimer.'<br />'.mysql_error());
J'ai ce message d'erreur:
Erreur SQL !DELETE FROM information WHERE id_type="1" AND id_artiste="SELECT id_artiste FROM artiste WHERE nom_artiste="blabla""
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 'nom de l'artiste choisi""' at line 1
Savez vous quelle est la bonne syntaxe?
Merci, Gwendo.
lorsque j'essaie de faire ces requêtes.
//récupère l'identifiant de l'artiste
$identifiant = 'SELECT id_artiste FROM artiste WHERE nom_artiste="'.$choix.'"';
//supprime les données inscrites dans la table
$supprimer = 'DELETE FROM information WHERE id_type="1" AND id_artiste="'.$identifiant.'"';
//lance le req
mysql_query ($identifiant) or die ('Erreur SQL !'.$identifiant.'<br />'.mysql_error());
mysql_query ($supprimer) or die ('Erreur SQL !'.$supprimer.'<br />'.mysql_error());
J'ai ce message d'erreur:
Erreur SQL !DELETE FROM information WHERE id_type="1" AND id_artiste="SELECT id_artiste FROM artiste WHERE nom_artiste="blabla""
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 'nom de l'artiste choisi""' at line 1
Savez vous quelle est la bonne syntaxe?
Merci, Gwendo.
A voir également:
- Pb syntaxe requète DELETE (php)
- Hiberfil.sys delete - Guide
- Juste delete me - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
5 réponses
Bonsoir,
Votre problème est simple :
Vous voulez mettre en identifiant de votre DELETE le "résultat" du SELECT, cependant :
- d'une part vous n'exécutez pas la première requête avant la suppresion, donc vous n'aurez pas d'identifiant.
- d'autre part votre variable $identifiant contient une "requête", une chaine de caractère.
Il est don certain qu'il y ai une erreur.
La solution est d'exécuter le SELECT, récupérer le résultat dans une autre variable (le véritable identifiant) et d'utiliser cette variable dans le DELETE.
Sinon la syntaxe est correcte à mon avis, au cas où :
http://dev.mysql.com/doc/refman/5.0/fr/data-manipulation.html
Bonne soirée.
Votre problème est simple :
Vous voulez mettre en identifiant de votre DELETE le "résultat" du SELECT, cependant :
- d'une part vous n'exécutez pas la première requête avant la suppresion, donc vous n'aurez pas d'identifiant.
- d'autre part votre variable $identifiant contient une "requête", une chaine de caractère.
Il est don certain qu'il y ai une erreur.
La solution est d'exécuter le SELECT, récupérer le résultat dans une autre variable (le véritable identifiant) et d'utiliser cette variable dans le DELETE.
Sinon la syntaxe est correcte à mon avis, au cas où :
http://dev.mysql.com/doc/refman/5.0/fr/data-manipulation.html
Bonne soirée.
sebshiva
Messages postés
194
Date d'inscription
Statut
Membre
Dernière intervention
10
Bien vu Azer_Ty
Bonjour,
En réalité "mysql_query" ne fait qu'exécuter la requête, pour ce qui est des INSERT, DELETE et UPDATE il n'y a pas de problème.
En revanche pour les SELECT il faut "traiter" le résultat retourné par mysql_query, l'une des solution est d'utiliser des fonctions tels que "mysql_fetch_assoc" pour avoir dans un tableau les résultats ligne par ligne.
Pour plus de détails un site référence en php : https://www.php.net/
Pour la fonction mysql_fetch_assoc : https://www.php.net/manual/fr/function.mysql-fetch-assoc.php
Bonne journée.
En réalité "mysql_query" ne fait qu'exécuter la requête, pour ce qui est des INSERT, DELETE et UPDATE il n'y a pas de problème.
En revanche pour les SELECT il faut "traiter" le résultat retourné par mysql_query, l'une des solution est d'utiliser des fonctions tels que "mysql_fetch_assoc" pour avoir dans un tableau les résultats ligne par ligne.
Pour plus de détails un site référence en php : https://www.php.net/
Pour la fonction mysql_fetch_assoc : https://www.php.net/manual/fr/function.mysql-fetch-assoc.php
Bonne journée.
Bonjour,
quand je fais ça, je n'ai plus de message d'erreur:
$sql_identifiant = "SELECT id_artiste FROM artiste WHERE nom_artiste='$choix'";
$identifiant = mysql_query ($sql_identifiant) or die ('Erreur SQL ! '.$sql_identifiant.'<br />'.mysql_error());
$supprimer = "DELETE FROM information WHERE id_type=1 AND id_artiste='$identifiant'";
mysql_query ($supprimer) or die ('Erreur SQL !'.$supprimer.'<br />'.mysql_error());
$inserer = 'INSERT INTO information VALUES("","'.$bio.'","'.$identifiant.'","1")';
mysql_query ($inserer) or die ('Erreur SQL !'.$inserer.'<br />'.mysql_error());
Ça me crée bien la nouvelle bio, mais ça ne supprime pas l'ancienne.
quand je fais ça, je n'ai plus de message d'erreur:
$sql_identifiant = "SELECT id_artiste FROM artiste WHERE nom_artiste='$choix'";
$identifiant = mysql_query ($sql_identifiant) or die ('Erreur SQL ! '.$sql_identifiant.'<br />'.mysql_error());
$supprimer = "DELETE FROM information WHERE id_type=1 AND id_artiste='$identifiant'";
mysql_query ($supprimer) or die ('Erreur SQL !'.$supprimer.'<br />'.mysql_error());
$inserer = 'INSERT INTO information VALUES("","'.$bio.'","'.$identifiant.'","1")';
mysql_query ($inserer) or die ('Erreur SQL !'.$inserer.'<br />'.mysql_error());
Ça me crée bien la nouvelle bio, mais ça ne supprime pas l'ancienne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question