Partage
  • Partager sur Facebook
  • Partager sur Twitter

gérer les clés étrangères

Sujet résolu
    11 décembre 2011 à 16:58:20

    Bonjour à tous, alors voilà j'aimerais faire ceci :
    j'ai une page qui me sert à ajouter des définitions (add_def.php) et sur cette page je peux selectionner le ou les auteurs qui ont dit cette définition.
    j'ai donc une table
    Definition (id_def, contenu_def)
    et une table
    auteur(id_auteur, nom_aut)

    Lorsque j'envoi la définition j'attérie sur ma page index.php ou là j'insère la nouvelle définition dans la table du même nom :
    <?php
     $bdd->exec("INSERT INTO definition VALUES('', '" . $contenu . "')");
    ?>
    


    maintenant j'ai une table "rapporte" qui me fait le lien entre les auteurs et les définition qu'ils ont rapportés qui se constitue sous cette forme :
    rapporte(id_auteur, id_definition) et sont tout deux des clés étrangères
    je veux que par exemple si la définition X (dont l'id est 8) rapporte par l'auteur 1,2 et 4

    j'insère dans ma table ;
    1,8
    2,8
    4,8

    malheureusement quand je fais ma boucle j'ai uns grosse belle erreur de contrainte

    Citation : erreur


    ( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`def_base`.`rapporte`, CONSTRAINT `FK_Rapporte_ID_definition` FOREIGN KEY (`ID_definition`) REFERENCES `defitinion` (`ID_defitinion`))' in C:\wamp\www\defitinion\index.php on line 30
    ( ! ) PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`defitinion_base`.`rapporte`, CONSTRAINT `FK_Rapporte_ID_defitinion` FOREIGN KEY (`ID_defitinion`) REFERENCES `definition` (`ID_definition`)) in C:\wamp\www\definition\index.php on line 30



    et ma ligne 30 :
    <?php
     $bdd->exec("INSERT INTO rapporte VALUES(" . $donnees_rap['ID_rapporteur'] .", " . $id_bidon . ")");
    
    ?>
    

    j'ai mis $id_bidon car je ne sais pas à l'avance quel est l'id de la définition que je viens d'entrer (c'est d'ailleurs mon second soucis) j'aurais préféré mettre $id_definition (l'id de la définition que je viens d'insérer)

    si vous avez une idée !

    merci beaucoup !
    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2011 à 23:49:52

      J'ai pas trop le temps donc j'ai lu en diagonale. Du coup, suis pas sûre à 100% d'avoir compris ton souci, mais au cas où, ce serait pas ça que tu cherches :

      http://php.net/manual/fr/pdo.lastinsertid.php
      • Partager sur Facebook
      • Partager sur Twitter
        12 décembre 2011 à 1:08:48

        j'ai résolu mon problème entre temps via cette fonction (merci google ^^) et mon autre problème c'est aussi réglé selon la réponse que tu m'avais donné avant hier :)

        En tout cas, merci beaucoup Taguan !

        Bonne soirée !
        • Partager sur Facebook
        • Partager sur Twitter

        gérer les clés étrangères

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown