Se connecter avec
S'enregistrer | Connectez-vous

[PHP] req DELETE FROM

Dernière réponse : dans Programmation

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

Autres pages sur : php req delete from

Lassé par la pub ? Créez un compte

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 ?

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()
Lassé par la pub ? Créez un compte
Tom's guide dans le monde