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 :

problème pour fonction de suppression par rapport aux valeurs associées [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut problème pour fonction de suppression par rapport aux valeurs associées
    bonjour,
    Je viens vers vous car je fais actuellement face à un beug que je trouve incompréhensible.
    Je dois supprimer des élements de la base de données mais une de mes requete ne fonctionne pas. je m'explique
    Dans ma base j'ai les tables suivantes: Utilisateur , groupe et droit, un utilisateur appartient a un groupe et un groupe a des droits
    lorsque je dois supprimmer un groupe je dois d'abord supprimer les droit de celui-ci j'ai crée une classe deleteData dans laquel je met toute mes methodes de suppréssion .

    voici les methodes de la classe deleteData que j'utilise:
    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
     
    function selectIdDroit($idGroupe)
        {
            $rsql="select ID_DROIT from groupe where ID_GROUP=$idGroupe";
            $resultat=mysql_query($rsql);
            if($resultat)
            {
                $data=mysql_fetch_assoc($resultat);
                return $data['ID_DROIT'];
            }
            else return $rsql;
        }
     
        function droit($idGroupe)
        {
            $idDroit=$this->selectIdDroit($idGroupe);
            $sql="delete from droit where ID_DROIT=$idDroit";
            $res=mysql_query($sql);
            if($res)
            {
                echo "Suppréssion du droit éffectué avec succès!";
            }
            else return $sql;
        }
     
        function groupe($idGroupe)
        {
            $rsql="delete from groupe where ID_GROUP=$idGroupe";
            $resultat=mysql_query($rsql);
            if($resultat)
            {
                echo "Suppréssion du groupe éffectué avec succès!";
     
            }
            else return $rsql;
        }
    dans la page qui recois les informations quz j'ai besoin j'ai ce code qui me permet de supprimer mon groupe et son champs droit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST['listeGroupe']))
    {
        $delete= new deleteData;
        echo $delete->droit($_POST['listeGroupe']);//suppréssion du droit associé au groupe en premier (foreign key)
        echo $delete->groupe($_POST['listeGroupe']);//puis suppréssion du groupe
    }
    ici je crée bien mon instance et je fais appel a mes methodes je commence par recuperer l'identifiant de mon droit puis je le supprime et enfin je supprime mon groupe mais lorsque j'execute ce code il ne supprime pas mon droit
    plus précisement ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function droit($idGroupe)
        {
            $idDroit=$this->selectIdDroit($idGroupe);
            $sql="delete from droit where ID_DROIT=$idDroit";
            $res=mysql_query($sql);
            if($res)
            {
                echo "Suppréssion du droit éffectué avec succès!";
            }
            else return $sql;
        }
    il n'entre pas dans le if mais que le else et m'affiche ma requete exemple de requete renvoyer
    delete from droit where ID_DROIT=28
    Et lorsque j'execute la requete directement sous phpmyadmin(je travail en local) la requête fonctionne!!!!
    la requete precedente fonctionne bien puisque je recois l'identifiant et le groupe et supprimmé il n'y a que le droit qui ne fonctionne pas.
    Si quelqu'un peut m'aider!!!!

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Bonjour,
    je n'ai pu détecter aucune erreur dans ton code. Mais j'ai un conseil essai d'afficher les messages d'erreur avec mysql_error() pour voir exactement où sa cloche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat=mysql_query($rsql) or die(mysql_error());
    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
     
    function selectIdDroit($idGroupe)
        {
            $rsql="select ID_DROIT from groupe where ID_GROUP=$idGroupe";
           $resultat=mysql_query($rsql) or die(mysql_error());
            if($resultat)
            {
                $data=mysql_fetch_assoc($resultat);
                return $data['ID_DROIT'];
            }
            else return $rsql;
        }
     
        function droit($idGroupe)
        {
            $idDroit=$this->selectIdDroit($idGroupe);
            $sql="delete from droit where ID_DROIT=$idDroit";
            $res=mysql_query($sql) or die(mysql_error());
            if($res)
            {
                echo "Suppréssion du droit éffectué avec succès!";
            }
            else return $sql;
        }
     
        function groupe($idGroupe)
        {
            $rsql="delete from groupe where ID_GROUP=$idGroupe";
            $resultat=mysql_query($rsql) or die(mysql_error());
            if($resultat)
            {
                echo "Suppréssion du groupe éffectué avec succès!";
     
            }
            else return $rsql;
        }
    http://fr.obedev.com/: Un blog sur le développement web et mobile.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    merci pour ton aide je pense avoir trouvé grace a toi c'est a cause de la foreign key de la table !!

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

Discussions similaires

  1. tri de hash par rapport aux valeurs
    Par paissad dans le forum Langage
    Réponses: 24
    Dernier message: 23/09/2021, 10h07
  2. Problème de positionnement d'une DIV par rapport aux autres
    Par garona dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 30/05/2011, 09h40
  3. tri d'un tableau a 2 colonnes par rapport aux valeurs de la première
    Par DeathMixer dans le forum Bibliothèque standard
    Réponses: 6
    Dernier message: 29/04/2009, 10h54
  4. Réponses: 2
    Dernier message: 07/03/2008, 15h39
  5. Réponses: 18
    Dernier message: 08/04/2006, 10h39

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