8796 sujets

Développement web côté serveur, CMS

j'essaie d'effectuer une requête delete mais elle ne fonctionne pas.

voila le code de ma page desabonnement.php

<?php
session_start();
include('config.php');
include('fonctions.php');
connexionbdd();

?>

<form action="trait-desabonnement.php" method="post" name="Inscription">

<p> Pour vous d&eacute;sabonner &agrave; notre newsletter veuillez entrer votre adresse email</p>
<input type="text" name="mail_desabonnement" id="mail_desabonnement" size="30" /><br/><br/>
<input type="submit" value="desabonnement" />

</form>



et le code de ma page trait-desabonnement.php

<?php
session_start();
include('config.php');

include('fonctions.php');
connexionbdd();


$sql = 'DELETE FROM "membres" WHERE membre_mail = "'.$_POST['mail_desabonnement'].'"';
$req = mysql_query($sql);
$data = mysql_fetch_array($req); 
mysql_free_result ($req); 

?>


et voilà la table en question
-- Structure de la table `membres`
-- 

CREATE TABLE `membres` (
  `membre_id` int(11) NOT NULL auto_increment,
  `membre_pseudo` varchar(32) NOT NULL,
  `membre_mdp` varchar(40) NOT NULL,
  `membre_mail` varchar(100) NOT NULL,
  `membre_inscription` bigint(20) NOT NULL,
  `membre_naissance` varchar(11) NOT NULL,
  `membre_msn` varchar(255) NOT NULL,
  `membre_yahoo` varchar(255) NOT NULL,
  `membre_aim` varchar(255) NOT NULL,
  `membre_localisation` varchar(255) NOT NULL,
  `membre_profession` varchar(255) NOT NULL,
  `membre_avatar` varchar(255) NOT NULL,
  `membre_biographie` text NOT NULL,
  `membre_signature` text NOT NULL,
  `membre_derniere_visite` bigint(20) NOT NULL,
  `membre_banni` int(11) NOT NULL default '0',
  PRIMARY KEY  (`membre_id`),
  UNIQUE KEY `membre_pseudo` (`membre_pseudo`),
  UNIQUE KEY `membre_mail` (`membre_mail`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

Modifié par volcomboy62 (18 Feb 2011 - 16:10)
Salut,

pour une requête de type DELETE, mysql_query() renvoi TRUE ou FALSE, tu n'as donc aucune raison d'effectuer un mysql_fetch_array() et un mysql_free_result().

Autre point, tu n'as peut-être pas mis tous le code de ta page de traitement mais je t'encourage à échapper ta variable $_POST['mail_desabonnement'] avec mysql_real_escape_string().

Mais sinon l'enregistrement devrai bien être retiré de ta base de donnée.
j'ai modifié mon code et j'obtiens cela :
<?php
session_start();
include('config.php');

include('fonctions.php');
connexionbdd();


$sql = 'DELETE FROM "membres" WHERE membre_mail = "'.mysql_real_escape_string($_POST['mail_desabonnement']).'"';
$req = mysql_query($sql);

?>


mais mon système de désabonnement de fonctionne pas, j'ai vérifié ma concaténation et je ne pense pas avoir fait d'erreur, de plus le nom de ma table est correctement écrit...
j'était persuadé qu'il fallait des guillemets autour du nom de ma table mais bon apparemment sa marche beaucoup mieux sans Smiley cligne