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 :

suppression d'une donnée de la bdd [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut suppression d'une donnée de la bdd
    Bonjour,
    je me heurte à un problème pourtant facile : la suppression d'une donnée de la base.

    J'ai une page qui affiche tous les membres inscrits dans ma table, sous chacun d'eux apparaissent 2 liens : modifier et supprimer. Je n'arrive pas à supprimer un membre malgré les nombreux codes trouvés sur le net. Pouvez-vous m'aider ?

    J'ai testé ce code

    <?php
    $sql = "delete FROM comptes_utilisateurs WHERE id = 'ID_Utilisateur'";
    echo "Le membre a bien été supprimé";

    ?>

    Ce code est dans une page a part liée au lien "supprimer" par un href tout simple.

    Une fois que je clique sur le lien supprimer, le texte "Le menre a bien été supp" s'affiche mais portant il n'a pas été supprimé....

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    normal , si ton code est exactement celui que tu nous montre , ta requete n est pas executée ... il faut faire un :

    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    si je mets ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '28'"; 
    $valeur=mysql_query($requete); 
    echo "Le membre a bien été supprimé";
     
    ?>

    il me met

    "
    Warning: mysql_query(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8\www\perso\suppr.php on line 3

    Warning: mysql_query(): A link to the server could not be established in c:\program files\easyphp1-8\www\perso\suppr.php on line 3
    Le membre a bien été supprimé

    "

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Tu etablie bien une connection a ta base avant ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre éclairé Avatar de JmL40
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    348
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 348
    Par défaut
    Ta syntaxe est correcte, ta suppression peut se faire sauf qu'il faut que tu te connecte à ta base, donc :


    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
     
    <?php
    // Paramètres persos
    $host = "localhost"; // voir hébergeur
    $user = "login"; // vide ou "root" en local
    $pass = "password"; // vide en local
    $bdd = "ma_base"; // nom de la BD
    // connexion
    mysql_connect($host,$user,$pass)
       or die("Impossible de se connecter");
    mysql_select_db("$bdd")
       or die("Impossible de se connecter");
     
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '28'"; 
    $valeur=mysql_query($requete); 
    echo "Le membre a bien été supprimé";
     
    ?>

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    perso a la fin je ferais plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $valeur=mysql_query($requete);
     
    if ($valeur)
       echo "Le membre a bien été supprimé";
    else
       echo "probleme lors de la suppression du membre";
    Sinon comme au debut le texte s'affichera comme si le membre avait ete supprimé alors que pas du tout ....
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    quelle idiote ..... j'ai honte.

    Cela marche merci beaucoup,

    Comment faut-il faire maintenant pour que ce soit l'id du client où est le lien qui se supprime ? J'ai lu un truc comme quoi on devait récupérer l'id de l'url pour savoir lequel on avait sélectionné. j'ai essayé mais ça ne marche pas

  8. #8
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    S'il est dans l'url tu as quelque chose du type:

    mapage.php?id=5

    A ce moment tu peux récupérer ta valeur dans la variable GET :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '$_GET['id']'";
    Par contre méfie toi que cette donnée soit valide, je ne peux que te recommander de faire des tests sur celle ci, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (is_numeric($_GET['id']))
     ... je fais ma requête ...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    Si je rentre ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '$_GET['ID_Utilisateur']'";
    $valeur=mysql_query($requete); 
    echo "Le membre a bien été supprimé";
    voici le message :

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\perso\suppr.php on line 14


    P.S.: je n'ai pas encore eu le temps de modifier mais je vais mettre comme conseillé le else à la fin pour savoir si la requete a bien été faite

  10. #10
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '".$_GET['ID_Utilisateur']."'";
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  11. #11
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    J'ai oublié les accolades pardon, mais la méthode de Ridekick est plus efficace.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    J'ai un problème avec la variable ID_Utilisateur, mais je ne vois pas comment le résoudre....

    Si je mets le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '".$_GET['ID_Utilisateur']."'";
    $valeur=mysql_query($requete);
    Voici l'erreur :
    Notice: Undefined index: ID_Utilisateur in c:\program files\easyphp1-8\www\....

  13. #13
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Est_ce qu elle est bien definie ?

    Dans ton cas est -ce qu elle et bien dans l url ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    c'est ça qui me pose un peu problème, je comprends pas comment elle peut être affichée dans l'url par rapport à ma technique.
    En fait, l'idée, c'est que j'ai une page sur laquelle apparait tous mes clients. Sous chaque client il y a un bouton modifier et un bouton supprimer. Et je voudrais que si l'on clique sur ce bouton, cela efface la personne qui correspond au bouton. (Je sais pas si c'est très claire...). Et donc, je vois pas où pourrait s'afficher l'id du client, puisqu'il s'agit d'une page commune....

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Citation Envoyé par mariepierre Voir le message
    J'ai un problème avec la variable ID_Utilisateur, mais je ne vois pas comment le résoudre....

    Si je mets le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '".$_GET['ID_Utilisateur']."'";
    $valeur=mysql_query($requete);
    Voici l'erreur :
    Notice: Undefined index: ID_Utilisateur in c:\program files\easyphp1-8\www\....
    La variable dans le GET doit être celle qui se trouve dans l'url. J'imagine que tu ne l'as pas fait vu que dans ta ligne de code tes 2 variables sont identiques.
    Prenons un exemple: (j'ai modifié l'url pour l'exemple)
    http://www.developpez.net/forums/pro...profile?id=295

    Dans cette url factice, nous avons 2 variables do et id la première nous sert à rien par contre la 2ème (id) permet de m'identifier.

    Donc si on reprend ton code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete="DELETE From comptes_utilisateurs WHERE ID_Utilisateur = '".$_GET['id']."'";
    $valeur=mysql_query($requete);
    Comme tu peux le voir, la variable du GET est celle qui se trouvait dans l'url. Maintenant à toi de mettre la variable qui se trouve dans l'url que tu veux traiter.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    mais je ne vois pas comment faire ça, puisque aucune variable ne s'affiche dans l'url

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    Alors y a surement des variables de session ou cookies. Tu ne saurais pas mettre ton code pour l'authentification de l'utilisateur ? Histoire de qu'on sache les variables qui sont utilisées.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    c'est à dire mon code qui permet de se connecter ?

  19. #19
    Membre averti
    Profil pro
    Développeur multimédia
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    Bon, moi, j'ai utilisé une technique différente...
    Lors de l'affichage de mes donnée, je crée un lien, qui me permettra d'appeller une page en passant l'ID (unique...) de mon enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href=suppression.php?action=supprimer&id=' . $id . '>Supprimer</a>';
    Dans la page suppression.php, je met :
    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
    <?php
     
    $action=$_GET['action'];
    $ident=$_GET['id']; 
    if ($action=="supprimer")
    {
    	//Fait en sorte que l'enregistrement $ident est supprimé
    	$bdd1 = mysql_connect($host, $user, $pass);
    	$table = "maTable";
    	mysql_select_db($bdd, $bdd1);
     
    	$sql = "DELETE FROM " . $table . " WHERE id=" . $ident;
    	echo $sql;
    	$req = mysql_query($sql) or die('<br>Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    	mysql_close();
    	echo '<center>Votre enregistrement a ete efface.<br>
    <a href="' . 'accueil.php"'.'>Retour</a></center>';
    }
    else echo "On va faire autre chose";
    ?>

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href=suppression.php?action=supprimer&id=' . $id . '>Supprimer</a>';
    les deux id, correspondent à quoi ? dans ma bdd mon id s'appelle ID_Utilisateur, il faut que je remplace id par ça ?

    quand je mets ce code on me dit parse error....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/07/2010, 12h27
  2. [MySQL] Probleme de suppression d'une donnée dans MySql
    Par Boony dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2008, 11h12
  3. [MySQL] Suppression d'une entrée dans ma BDD
    Par Luverger dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 19/02/2007, 13h39
  4. [SQL] Suppression d'une donnée dans une lise déroulante
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 26/01/2006, 11h56
  5. [Formulaire] Alerte avant suppression d'une donnée via un formulaire
    Par leloup84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/01/2006, 10h50

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