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 :

problem de suppression d'un ligne dans la BD


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 17
    Points
    17
    Par défaut problem de suppression d'un ligne dans la BD
    Bonjour SVP j'ai voulu supprmier une ligne de ma base de donnée nomeé personnel de tableau pers en utilisant un boutton qui me permet de récupérer le matricule qui est l'id dans le tableau pers comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="../module/sup_pers.php?Matricule=<?php echo $_GET['Matricule']?>"><input type="submit" value="Supprimer"/>
    et dans un fichier j'ai fait la connexion avec la base de donné la suppression ainsi un message indiquant que le champ a été bien supprimé comment suivant:
    Code php : 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
    <?php
     
    try
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost;dbname=personnel','root','');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
    ?>
    <?php
    $req=$bdd->prepare('DELETE FROM pers WHERE Matricule=:Matricule');
    $req->execute(array(
    'Matricule'=> $_GET['Matricule']
    	)); 
    echo "suppression effectué";
    ?>
    Un message de confirmation "suppression effectué" S'affiche mais dans la base de données rien n'est supprimer je sais pas où est l'erreur
    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    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
     /*
    try
    {
    	// ON se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost;dbname=personnel','root','');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
    $req=$bdd->prepare('DELETE FROM pers WHERE Matricule=:Matricule');
    $req->execute(array(
    'Matricule'=> $_GET['Matricule']
    	)); 
    */
    echo "suppression effectuée";
    ce code fait la même chose que le tiens. il affiche aussi "suppression effectuée", et pourtant il n'efface rien. Puisque c'est la deuxieme fois que la question est posée, pose toi la question pourquoi je réponds la même chose.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    non non ya trois jours c'était pas la même requête il me semble

    Bon à part l'echo qui sert à rien,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req->execute(array(':Matricule'=> $_GET['Matricule']));
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Merci
    Merci mais meme si j'ai supprimé cette parti le problem reste le même

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par medoss Voir le message
    Merci mais meme si j'ai supprimé cette parti le problem reste le même
    Supprimer quoi, l'echo? Et la modif sur la ligne de l'execute, tu l'as pris en compte ?
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    il ne fallait pas supprimer la ligne mais corriger pour avoir un binding correct.
    et ma remarque précédente c'est parce que tu affiches un message de confirmation sans verifier si l'instruction d'effacement a réussi. Du coup il ne veut rien dire.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Fench Voir le message
    Supprimer quoi, l'echo? Et la modif sur la ligne de l'execute, tu l'as pris en compte ?
    non j'ai pas supprimé l'echo j'essayé just de supprimé la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req->execute(array(
    'Matricule'=> $_GET['Matricule']
    et remplacer prepare par exec() mais ca marche pas ,je suis encore débutant en php,donc merci de me donner des explication avec code

  8. #8
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    C'est ton code, je dirai c'est difficile de te l'expliquer: on connait pas ton API.

    Habituellement on prépare un requete (on l'analyse en gros) puis on l'execute: faut les deux.
    Le probleme est probablement un pb sur le paramètre matricule que tu passes, Fench suggere que le bind correct n'est pas Matricule mais :Matricule.

    Je conseille de regarder le code de retours de la fonction execute pour voir ce que répond la fonction pour dire s'il y a eu un erreur ou pas lors de l'execution de la requete de suppression.

    Je serai mauvaise langue, je dirai que le premier probleme est un problème de calligraphie et l'autre d’algorithmie, aucun des deux ne dépend de la maitrise de PHP, finalement. Amis modérateurs je ne suis pas mauvaise langue... pas taper.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  9. #9
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $req=$bdd->prepare('DELETE FROM pers WHERE Matricule=:Matricule');
    $req->execute(array(':Matricule'=> $_GET['Matricule']));
    Pour plus d'info et comprendre pdo tu as pleins de tutos sympas et faciles sur internet. Plus le manuel Php qui tjs avoir en favoris, à la section sur Pdo.

    En dernier voir la méthode 'bindParam', j'utilise plutôt ceci.
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  10. #10
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par gene69 Voir le message
    C'est ton code, je dirai c'est difficile de te l'expliquer: on connait pas ton API.

    Habituellement on prépare un requete (on l'analyse en gros) puis on l'execute: faut les deux.
    Le probleme est probablement un pb sur le paramètre matricule que tu passes, Fench suggere que le bind correct n'est pas Matricule mais :Matricule.
    Essayes de comprendre tout ce que nous t'avons dis(gene69 et moi) ... car là j'ai l'impression que tu tatonnes beaucoup sans savoir
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci infiniment les amis l'erreur s'etait au lieu de faire $_GET ['Matricule'] il faut faire $_donnees['Matricule'] dans le premier code Merci a nouveau pour l'aide

  12. #12
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par medoss Voir le message
    Merci infiniment les amis l'erreur s'etait au lieu de faire $_GET ['Matricule']il faut faire $_donnees['Matricule'] dans le premier code Merci a nouveau pour l'aide
    vu le code pour le tag href, je comprends pas tout mais bon si c'est ok pour toi, c cool. (mais je te répéte que tu devrais lire les docs en lien)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

Discussions similaires

  1. [JTable] suppression d'une ligne dans un JTable?
    Par hby dans le forum Composants
    Réponses: 14
    Dernier message: 15/03/2007, 14h44
  2. Réponses: 3
    Dernier message: 26/03/2006, 20h45
  3. [VB.net] Détection suppression d'une ligne dans Datagrid
    Par Cereal123 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/03/2006, 14h08
  4. [VB6]Suppression d'une ligne dans un fichier
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2006, 11h20
  5. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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