Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Dreamgratuit - Philosophie
19 septembre 2011

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

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.

Publicité
Commentaires
J
Bonjour et meilleur voeux RE.<br /> <br /> Pouviez vous compléter ce tuto pour nous ...<br /> <br /> Merci d'avance.
R
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.
J
Quel suivi...
J
Bonjour,<br /> Voici le message que j'ai : Unknown column 'abonnement' in 'field list'.<br /> Quand j'ai applique ce tuto .<br /> Merci
Archives
Publicité
Publicité