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 :

Insertion + clés etrangères


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut Insertion + clés etrangères
    Bonjour à tous,

    Dans le cadre d'un projet, je dois développer un site d'annonces immobilières.
    Je dispose de 2 tables :

    annonces_immobilier
    id_annonce_immobilier
    id_annonce_immobilier_texte
    proprietaire_annonce
    departement
    prix
    surface
    nb_pieces
    annonces_immobilier_texte
    id_annonce_immobilier_texte
    id_proprietaire_annonce_immobilier
    sujet_annonce
    body_annonce
    Je ne connais malheureusement pas le procédure pour créer le lien clé primaire - étrangère suivant, sous PHPMyAdmin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    annonces_immobilier.id_annonce_immobilier_texte = annonces_immobilier_texte.id_annonce_immobilier_texte
    - Autre point, les formulaires sont crées, mais comment gérer les insertions en PHP par la suite ? Quelles sont les requêtes à passer ?

    Merci beaucoup

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE `annonces_immobilier` ADD FOREIGN KEY(`id_annonce_immobilier_texte `);
    ALTER TABLE `annonces_immobilier_texte` ADD PRIMARY KEY(`id_annonce_immobilier_texte `)
    Après vois pour le moteur de stockage, si tu prend innoDB, structure -> gestion des relations

    Et tu affecte ta clé étrangère à la primaire.

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je ne connais malheureusement pas le procédure pour créer le lien clé primaire - étrangère suivant, sous PHPMyAdmin
    Utilise MySQL workbench et il le fera pour toi

    http://wb.mysql.com

    Cette question relève du forum MySQL.

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut
    Ok merci les gars. Par contre, comment ça ce passe au niveau des insertions ?
    Je parle surtout des champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    annonces_immobilier.id_annonce_immobilier_texte
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    annonces_immobilier_texte.id_annonce_immobilier_texte
    .

    Dois-je les renseigner dans mes requêtes INSERT ?

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Bien entendu. Et selon la contrainte exprimée par la clé étrangère, la requête INSERT ou UPDATE peut échouer.

    Pense également à mettre des règles de suppression pour tes entrées (ON DELETE CASCADE par exemple signifie que les champs "fils" seront détruit lors que le parent sera supprimé).

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut
    Ok, Benjamin. Merci pour tes réponses mais il y a quelque chose qui m'échappe.

    Imaginons qu'une personne renseigne une annonce.

    Ce que tu préconiserai est la chose suivante :
    je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from annonces_immobilier
    pour savoir j'ai combien d'annonces (annonce_immobilier et annonce_immobilier_texte contiennent le même nombre d’éléments car à une annonce est associée un et un seul texte) puis je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into annonces_immobilier values ("résultat de la requête précédente +1", "TOTO", prix, surface, ...);
    insert into annonces_immobilier_texte values ("résultat de la requête précédente +1", sujet, body, ...);
    avec TOTO = clé primaire de la table annonces_immobilier_texte correspondante -> donc "résultat de la requête précédente +1"

    Ma question précédente résultait du fait que je pensais utiliser des auto increment (donc pas besoin de renseigner les clés primaire a chaque fois) mais si je le fais, je ne sais plus quoi mettre comme valeur a TOTO.

Discussions similaires

  1. Insertion + clés etrangères
    Par identifiant_bidon dans le forum Requêtes
    Réponses: 7
    Dernier message: 30/06/2011, 17h15
  2. Paginate avec des conditions sur les clés etrangères.
    Par CeDRiC08 dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 03/07/2007, 09h49
  3. Auto jointure (externe) sur clés etrangères
    Par mauvais_karma dans le forum Langage SQL
    Réponses: 13
    Dernier message: 30/11/2006, 13h46
  4. Les Clés etrangères
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/06/2006, 15h58
  5. Clés Etrangères : Erreur
    Par n@n¤u dans le forum Installation
    Réponses: 2
    Dernier message: 12/06/2006, 10h30

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