Probleme avec la requete delete

Fermé
norais Messages postés 103 Date d'inscription dimanche 7 juin 2009 Statut Membre Dernière intervention 15 juillet 2014 - 27 août 2012 à 23:23
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 28 août 2012 à 15:27
Bonsoir,
je fais une suppresion d'un article de la base de donnes a travers un traitement simple
mais lorsque je cherche dans la base je trouve l'article concerné meme que j'obtient pas une erreur lors de l'execution du script php *aidez moi svp
voila mon simple script
$req="DELETE FROM mat_sn WHERE id_mat=(SELECT id_mat FROM mat_sn WHERE SN=')".$_GET['sn'];
			mysql_query($req);
			echo "le post avec le serial number suivant".$_GET['sn']."a ete  supprime avec succes";



2 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
27 août 2012 à 23:45
Bonsoir,

Ceci?

$ref = $_GET['sn'] *1; // empêche une injection SQL

$req="DELETE FROM mat_sn WHERE id_mat=$ref";


A+
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
28 août 2012 à 15:27
Hello,

Question : quelle est l'utilité de faire une sous-requêtes allant taper dans la même table alors qu'un where suffirait largement ? En plus tu fermes la parenthèse de la sous-requête avant d'y avoir injecté le paramètre...
Cf solution ci-dessous :

$req="DELETE FROM mat_sn WHERE SN='".$_GET['sn']."';";


NOTE : j'ai mis des guillemets simples autour de la variable pour la gérer comme une chaîne de caractères. Si c'est un numérique, supprime-les.
0