IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enlever un enregistrement et message de confirmation [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut Enlever un enregistrement et message de confirmation
    Bonjour a tous, dans ma page PHP j'ai fait une requete SQL pour que quand un utilisateur veux ce désinscire sa la supprime de la BDD et il recoi un message de confirmation de sa désinscription, la requete fonctionne par contre quand la personne rentre une adresse email qui n'existe pas il recoi le meme message, j'comprend pas trop ou j'ai fait l'erreur...

    Si vous avez une idée je suis preneur...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
     
     
    $serveur ="localhost";
    $login = "root";
    $mot_passe = "";
    $base = "publicore";
     
     
    $connexion = mysql_pconnect($serveur, $login, $mot_passe) or die ("impossible de se connecter a MySQL : ".mysql_error());
     
    $mabase = mysql_select_db($base) or die ("impossible de ce connecter ma table : ".mysql_error());
     
    switch($_POST['action'])
     
    	{
    		case "delete_formulaire" :
     
    		$requete = "DELETE FROM email WHERE email = ('".$_POST['email']."')";
     
    		$resultat = mysql_query($requete) or die(mysql_error());
     
    		if($resultat == TRUE)
     
    		{
     
    		echo "Votre désinscription a bien été transmise";
     
    		}
     
    		else
     
    		{
     
    		echo "Cette adresse Email n'existe pas";
     
    		}
     
    		break;
     
    	}
     
    		mysql_close();
     
    ?>



    Merci d'avance!!!

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut
    D'après php.net,
    For DELETE mysql_query() returns TRUE on success or FALSE on error.
    Ce qui signifie que ta requête ne retournera FALSE que si elle est syntaxiquement incorrecte. Dans le cas contraire, elle renverra TRUE.
    Comme ta requête est correctement formulée, elle te renverra toujours TRUE.

    Personnellement (mais je ne sais pas si tout le monde sera d'accord avec moi), je ferais une première requête en SELECT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT * FROM email WHERE email = ('".$_POST['email']."')";
    pour savoir si oui ou non il y a quelque chose pour l'adresse mail indiquée, et, le cas échéant, je ferais la requête DELETE.

    Après, cela n'engage que moi...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut
    Bon c'est clair que si mysql_query renvoi TRUE si la syntaxe est bonne j'y arriverai pas comme sa...

    J'ai a peu pres compri ton resonment avec le select, mais j'arrive pas trouver la logique pour l'apliquer a chaque fois je fait un if de mysql_query avec soit true ou false et forcement une fois il me dit que c'est bon et de l'autre que non..


    J'vous met mon code completment pas logique si jamais vous pouvez m'aiguiller...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?php
     
     
    $serveur ="localhost";
    $login = "root";
    $mot_passe = "";
    $base = "publicore";
     
     
    $connexion = mysql_pconnect($serveur, $login, $mot_passe) or die ("impossible de se connecter a MySQL : ".mysql_error());
     
    $mabase = mysql_select_db($base) or die ("impossible de ce connecter ma table : ".mysql_error());
     
    switch($_POST['action'])
     
    	{
    		case "delete_formulaire" :
     
    		$requete = "SELECT * FROM email WHERE email = ('".$_POST['email']."')";
     
     
    		$resultat = mysql_query($requete) or die(mysql_error());
     
    		if($resultat == FALSE)
     
    		{
     
     
    		echo "Cette adresse Email n'existe pas";
     
    		}
     
    		else
     
    		{
    		$requete = "DELETE FROM email WHERE email = ('".$_POST['email']."')";
     
    		$resultat = mysql_query($requete) or die(mysql_error());
     
    		echo "Votre désinscription a bien été transmise";
    		}
     
    		break;
     
    	}
     
    		mysql_close();
     
    ?>

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut
    Une fois que tu as stocké ton résultat dans $result, fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $row=false;
    while ($row = mysql_fetch_array($result)) {
     
                    $requete = "DELETE FROM email WHERE email = ('".$_POST['email']."')";
     
    		$resultat = mysql_query($requete) or die(mysql_error());
     
    		echo "Votre désinscription a bien été transmise";
    }if(!$row) echo "Cette adresse Email n'existe pas";
    Attention toutefois que ton adresse mail soit bien unique dans ta table!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut
    Merci ca fonctionne, j'pense que cette technique va beaucop me servir!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2012, 12h24
  2. [PHP 5.3] suppression d'enregistrement et message de confirmation
    Par redoran dans le forum Langage
    Réponses: 28
    Dernier message: 26/04/2012, 16h25
  3. Réponses: 9
    Dernier message: 10/05/2010, 20h28
  4. Réponses: 1
    Dernier message: 12/02/2009, 16h13
  5. Réponses: 2
    Dernier message: 24/04/2008, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo