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 :

clé étrangère et méthode de suppression


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut clé étrangère et méthode de suppression
    Bonjour à tous,

    Je ne comprends pas bien le sens des options sur les clés étrangères. Dans ma base de données, j'ai une table de biens immobiliers, et une table de photos. Chaque photo a trois champs : son id, son nom, et l'id du bien qu'elle représente. Ce dernier est ma clé étrangère.

    Lorsque je supprime un bien, je veux que les photos soient supprimées automatiquement, mais je veux qu'on puisse supprimer des photos sans avoir à supprimer le bien. En ce qui concerne l'UPDATE, je souhaite faire en sorte que, si l'on change l'id d'un bien, la clé étrangère de la photo soit aussi modifiée. J'ai donc mis :

    ON DELETE RESTRICT ON UPDATE CASCADE. Seulement, j'ai une fonction supprimer() qui est rédigée de cette façon :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function supprimer(Bien $bien) {
    		if (!empty($bien->getPhotos)) {
    			$this->bdd->exec('DELETE * FROM photos WHERE id_bien = '.$bien->getId());
    		}
     
    		$this->bdd->exec('DELETE FROM biens WHERE id = '.$bien->getId());
    	}

    Je prévois donc la suppression de la photo avant la suppression du bien. Pourtant, lorsque je fais appel à cette fonction, j'ai toujours le message d'erreur me disant que le bien ne peut être supprimer en raison de la présence de la clé étrangère.
    Comment faut-il faire ? Faut-il changer les options de clé étrangère ? Dans quel sens fonctionnent ces options ? ON DELETE sur ma clé étrangère, qui est sur la table photos et fait référence à la table biens concerne-t-il la suppression d'un bien ou d'une photo ?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu n'aurais pas fait tes clef à l'envers ?
    Quelle requête provoque l'erreur ?

    Sinon pour l'explication des relations :
    http://sqlpro.developpez.com/cours/s...partie2#L7.3.2
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de Markos22
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2016
    Messages : 198
    Par défaut
    Merci, @sabotage.

    La solution est en effet de mettre tout en CASCADE, et je n'ai pas besoin de supprimer la photo avant de supprimer le bien. C'est l'option CASCADE qui s'en charge. Question résolue.

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

Discussions similaires

  1. Méthode de suppression pour Arbre Binaire de recherche
    Par TheRogerFederer dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 28/11/2014, 11h49
  2. Problème de clé étrangère lors de la suppression
    Par Xenonmax dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/05/2012, 20h37
  3. Réponses: 5
    Dernier message: 15/06/2007, 16h43
  4. Réponses: 6
    Dernier message: 30/11/2006, 10h09
  5. Suppression Index, Clés étrangères, etc....
    Par nodule dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/11/2004, 09h42

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