Inscription en 2 requetes

Résolu
Mickael -  
 Mickael -
Bonjour à tous,

Je souhaite créer un process d'inscription qui alimente 2 tables de la meme bdd à partir d'un seul formulaire :
info_utilisateur (id,mail, mot de passe, prenom)
info_moto (id, id_utilisateur, marque, modele, puissance)

Comment dois je faire pour affecter l'id de la table utilisateur à ma table info_moto svp ?

J'ai cherché coté jointure sql mais je ne vois pas comment récupérer l'id de l'utilisateur.

Un grand merci d'avance,

Mickael

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour
    Tu dois faire deux requêtes et utiliser la.fonction lastinsertid en mysql.
    Si c'est un autre sgbd dis le nous car il existe des équivalents
    ..
    0
    1. Mickael
       
      Bonjour Jordan,
      Merci pour ta réponse.
      Je suis effectivement sur mysql.


      Je viens d'effectuer quelques tentatives avec
      $last_id = $bdd->lastInsertId(); à la suite de ma première requete

      Mais je ne sais pas comment récuperer l'info, j'ai tenté des choses mais j'obtiens 0 ;
      Dois je le mettre dans un input ?
      <input id="idmembre" name="idmembre" value="<?php $last_id; ?> 


      ou dans la 2 ieme requete sql ?


      $insertmbr = $bdd->prepare("INSERT INTO membre(mail, motdepasse, prenom, nom) VALUES(?, ?, ?, ?)");
      $insertmbr->execute(array($mail, $mdp, $prenom, $nom, $codepostal, $telephone, $dateinscription));
      $last_id = $bdd->lastInsertId();


      $insertmoto = $bdd->prepare("INSERT INTO opmoto(idmembre,marque,modele) VALUES(?,?,?)");
      $insertmoto->execute(array($idmembre,$marque,$modele));




      Merci par avance
      0
  2. Mickael
     
    Résolu :
    Je l'ai mis dans ma requete.
    Je ne sais pas si c'est correcte mais cela fonctionne.


    $insertmoto->execute(array($last_id, ...
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Si c'est bien ça !

    PS : Pense à marquer la discussion en RESOLU (lien qui se trouve sous le titre de ta question )
    0