Se connecter / S'enregistrer
Votre question

[PHP] req DELETE FROM

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
1 Septembre 2006 18:24:55

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

1 Septembre 2006 19:11:25

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
1 Septembre 2006 19:18:11

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 ?
1 Septembre 2006 19:44:07

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!
1 Septembre 2006 20:05:55

J'ai bien fait cocpier coller mais il y a une erreur :/ 
1 Septembre 2006 20:53:47

quoi comme erreur?
a c 145 L Programmation
1 Septembre 2006 22:45:48

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()
2 Septembre 2006 12:58:40

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
a c 145 L Programmation
2 Septembre 2006 13:10:07

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!
2 Septembre 2006 18:51:47

Je sais merci mais tu voies, j'apprends :/  donc je suis encore un newbies en la matière..
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS