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 :

Formulaire PHP et inscription jointure dans MySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Juin 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Juin 2020
    Messages : 25
    Par défaut Formulaire PHP et inscription jointure dans MySQL
    Bonjour à tous,
    Je suis débutant en PHP Mysql. Je suis en train de me faire une petite appli perso, et je bloque sur quelque chose qui me paraît pourtant assez simple. Je m'exlique :
    J'ai ma base de donnée MySQL, qui contient deux tables :
    Table individus
    CodeID CodeNom (renvoie à la table Noms) Prenoms
    1 1 Barack Hussein
    2 1 Michelle
    3 2 Donald
    Table noms
    CodeID Noms
    1 Obama
    2 Trump
    J'ai ensuite un formulaire PHP, pour rajouter des individus à la table individus (et noms, si besoin).
    ajout_individu.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    			<form method="POST" action="ajout_individu_add.php">
     
    				<p><label for="nom">Nom</label> : <input type="text" name="nom" id="nom" /></p>
     
    				<p><label for="prenoms">Prénoms</label> : <input type="text" name="prenoms" id="prenoms" /></p>
     
    				<p><input type="submit" value="Envoyer" name="envoyer" /></p>
     
    			</form>
    ajout_individu_add.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    			<?php
     
    				$req = $bdd->prepare ('INSERT INTO individus (CodeNom, Prenoms) VALUES((SELECT CodeID FROM noms WHERE Nom = ?), ?)');
     
    				$req->execute(array($_POST['nom'], $_POST['prenoms']));
     
    				header('Location: ajout_individu.php');
     
    			?>
    Bon, j'ai tenté un code SQL foireux. Ce que je souhaite, c'est lorsque on inscrit un nom dans le formulaire, il s'inscrive dans la table Noms, en lien avec le CodeNom de la table individus. Et, si le nom est déjà présent, le rattaché automatiquement au nouvel individu.
    Si une bonne âme veut bien m'aider et m'expliquer, je serais reconnaissant...

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Ca donnerait à peu près ça :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*
    CAS 1 => nom déjà présent
    $nom="Trump"
    $prenom="Steven"
     
    CAS 2 => nom absent
    $nom="REAGAN"
    $prenom="Ronald"
    */
     
    select CodeID from noms where lower(trim(Noms))="Trump";

    //en PHP
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    if(empty($row['CodeID'])){

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into noms values (NULL, upper("Trump"));
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    }
     
    //grâce à PDO, tu récupères le lastInsertId
     
    $row['CodeID']=le last insert id.
     
    //dans tous les cas tu continues
     
    $sql='insert into individus values(NULL, '.$row['CodeID'].',"'.$prenom.'";';

    Ceci dit, je ne vois pas l'intérêt de mettre les noms de famille en clé étrangère... C'est pour un exercice en fait ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/05/2008, 23h19

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