[PHP] req DELETE FROM
Forum Programmation : [PHP] req DELETE FROM
Voila j'apprends en se moment le PHP et j'ai un petit problème avec une requête SQL, je bosse sur un livre d'or.
j'ai 2 pages, admin.php et supp.php
je met que le code essentiel pour l'aide :
admin.php :
<p><form action='supp.php' method='post'><br />
<input type='text' name='quoi' /><br />
<input type='submit' value='Supprimer ces messages' /></form></p>
Dans le champ créé on rentre une commande du style : pseudo='MoAX'
supp.php :
<?php
if (isset($_POST['quoi']))
{
if ($_POST['quoi'] != NULL)
{
$delete = $_POST['quoi'];
mysql_connect('---adresse serveur mysql----', 'pseudo', 'mot_de_passe');
mysql_select_db('-la BDD-');
mysql_query('DELETE FROM livredor WHERE $delete');
mysql_close();
}
}
?>
Mais pourtant quand j'écris dans le livre d'or, avec le pseudo MoAX, je marque pseudo(le nom du champ)='MoAX'
aucune erreur et rien ne s'efface
est-ce que mysql_query('DELETE FROM livredor WHERE pseudo='MoAX''); est une requête erroné ?
Expliquez mon erreur svp, j'ai cherché pas mal, et d'après les tutos du site du zéro, je ne vioe pas comment on peu faire autrement
Merci
Message édité par MoAX le 01-09-2006 à 18:26:22
salut
Dans mes scripts php, quand je veut effacer un message avec la fonction 'DELETE , je ne mais pas where "pseudo" qui est donc une chaine de carractere dans ton exemple, mais j'utilise ID, pour dire quelle ligne il faut effacer, dans ce cas ça fonctionne. Il suffit de recuperrer le ID du texte à effacer,
Tu peut testet ceci:
$SQL = "DELETE FROM livredor";
$SQL .= " WHERE ID=" .$delete';
$result = mysql_query($SQL);
voila, tu peut remplacer ces lignes par celle ci:
mysql_query('DELETE FROM livredor WHERE $delete');
Puis pour tester il te suffit de mettre dans ton champ texte le numero de l'enregistrement, par exemple 3,
et la l'effaçement aurra lieu
Ok pour l'instant je comprends pas trop ton script mais avec le temps, le site du zero me le dira surement ^^
merci beaucoup mais ça marche aussi avec un autre champ que ID ?
et le "." devant $delete et après $SLQ, il veut dire quelque chose ?
Je n'est pas tester sans le id, mais à mons avis ça ne fonctionne pas. Pour les point cest La concaténation,.
Mais teste le script il fonctionne!
J'ai bien fait cocpier coller mais il y a une erreur
quoi comme erreur?
Il y a une erreur que tu aurais vu en faisant un echo de ta requete:
Lorsque tu transmet un champ de formulaire, si le magic_quotes est activé, les caractères particuliers sont échappés.
Ta requete devient donc:
DELETE FROM livredor WHERE pseudo=\'MoAX\'
Ce qui peut t'aider, c'est l'utilisation de stripslashes()
Répondre à crazycat@idn
erf... euh svp expliquez moi je suis encore un débutant en codage PHP
donc il suffit que je mette un backslash devant mes ' ?
merci
non, au contraire.
L'envoit des infos par POST ou GET peut en ajouter, il faut donc que tu fasses un stripslashes($delete) pour retrouver ce que tu dois utiliser.
La doc PHP, c'est pas pour les chiens!
Répondre à crazycat@idn
Je sais merci mais tu voies, j'apprends
donc je suis encore un newbies en la matière..
Il y a 1477 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

crazycat@idn