Extensions et tutorials gratuits disponibles sur internet pour Dreamweaver. PHP et ASP. Classement thématique. Blog référencé par Adobe Communauté Dreamweaver.

Dreamweaver gratuit

Insérer des données dans 2 tables via un seul formulaire (cases à cocher) - Part 2

19 septembre 2011 | Posté par caroder à 10:27

Bookmark and Share

Pour arriver à insérer des données dans 2 tables différentes, nous devons impérativement récupérer l’ID d’insertion du 1er enregistrement dans la 1re table pour nous en servir comme clé étrangère dans l’insertion de l’enregistrement dans la 2e table.

Il y a longtemps déjà je vous avais expliqué comment récupérer cet ID d’enregistrement lors de l’insertion. Nous allons donc appliquer basiquement cette méthode.

Le nom donné par Dreamweaver par l’assistant d’insertion d’enregistrement dans mon exemple n’a pas été modifié. Il s’agit de $Result1.

Repérer dans le code les lignes suivantes ($ConnTuto est le nom que j’ai donné à ma connexion, ce nom varie en fonction du nom que vous avez choisi pour la vôtre) :

  mysql_select_db($database_ConnTuto, $ConnTuto);
  $Result1 = mysql_query($insertSQL, $ConnTuto) or die(mysql_error());

Ajoutez juste en dessous de ces 2 lignes le code suivant :

$theID = mysql_insert_id();

Cette instruction nous sert à récupérer l’ID de l’utilisateur dans la 1re table.

Il ne nous reste plus qu’à écrire la requête pour les enregistrements dans la 2e table avec comme clé étrangère l’ID de l’utilisateur. Pour ceci, nous allons utiliser une boucle « foreach » car il nous faudra autant de ligne d’enregistrements que d’abonnements demandés aux thématiques.

Juste en dessous de la ligne « $theID = mysql_insert_id(); », ajoutez le code suivant :

// insertions des cases à cocher dans la deuxième table
// *************************************************************
if (!empty($_POST['abonnement'])) { /* la case à cocher n’est pas vide */

     foreach ($_POST['abonnement'] as $cle) { /* pour chaque case cochée devenue variable $cle */
                $Requete = "INSERT tb_abonnements (abonnement, id_utilisateur) VALUES ('$cle', '$theID')";
                $resRequete = mysql_query($Requete, $ConnTuto) or die(mysql_error());
     }
}

Voilà, c’est fini !

Il ne vous reste plus qu’à sauvegarder votre page et à procéder à un test de votre formulaire. Vos deux tables devraient se remplir simultanément à chaque envoi du formulaire, la première avec un seul enregistrement et la seconde avec autant d’enregistrement que de cases cochés comme abonnement.


Commentaires

    Aide

    Bonjour,
    Voici le message que j'ai : Unknown column 'abonnement' in 'field list'.
    Quand j'ai applique ce tuto .
    Merci

    Posté par JC | 20 septembre 2011 à 13:48
  • ...

    Quel suivi...

    Posté par JC | 25 octobre 2011 à 10:59
  • Incomplet

    Bonjour, Chez moi quand je fais des tutos pour dreamweaver je les faits de A à Z ici il en manque la moitié, faire 2 pages pour un tuto incomplet c'est le comble.

    Posté par RE | 11 janvier 2012 à 17:53
  • incomplet

    Bonjour et meilleur voeux RE.
    Pouviez vous compléter ce tuto pour nous ...
    Merci d'avance.

    Posté par JC | 17 janvier 2012 à 15:05
 

Poster un commentaire