Bonjour à vous,
je vous préviens de suite, je suis légèrement débutant en php et mysql et je pose cette discussion car je n'arrive pas à trouver les messages ou les tutoriels qui conviennent à mon problème. du coup ça va être assez théorique car mon code n'est pas très avancé.
En fait, j'ai un formulaire en php qui créé une entrée dans une table A, mais en même temps l'utilisateur peut choisir dans une liste déroulante plusieurs lignes d'une table B qui sera donc liée.
Du coup, vu qu'il s'agit d'un lien un à plusieurs, je passe par une table intermédiaire C qui gérera les liens entre les ID de la table A et de la table B.
Mais du coup, j'aurais deux questions :
- où pourrais-je trouver une bonne explication pour arriver à choper les infos de la liste déroulante du formulaire pour arriver à les insérer dans la table C (j'ai essayé avec une procédure foreach mais je bloque un peu) ?
- comment je peux insérer dans la table C l'ID de la table A alors que celui-ci ne s'incrémentera automatiquement qu'à la création de la ligne ?
Comme je me doute que ce que je pose comme question est un peu abstrait, je vous mets donc juste le code actuel, sachant qu'il ne fonctionne pas. La table A est donc la table "bibliographie" dont l'ID s'autoincrémente et la table B est la table "auteur". J'ai appelé la table C "lien_auteur_biblio"
Merci vraiment beaucoup d'avance à la personne qui, en ces temps de confinement, aura la bonté de lire ce message et de me répondre !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 //Récupération des données du formulaire if(isset($_POST['id_auteur'])) {$id_auteur []=$_POST['id_auteur'];} else { $auteur="";} if(isset($_POST['annee'])) { $annee=$_POST['annee'];} else { $annee="";} if(isset($_POST['reference'])) { $reference=$_POST['reference'];} else { $reference="";} // On vérifie si les champs sont vides if(empty($id_auteur) OR empty($annee) OR empty($reference)) { echo '<font color="red">Attention, un champ ne peut pas être vide !</font>'; } // Aucun champ n'est vide, on peut enregistrer dans la table biblio else $connexion=include 'dunum_connexion_db.php'; $insertion = $connexion->prepare ("INSERT INTO `bibliographie`(ID_Biblio,`Annee_Biblio`, `Reference`) VALUES(Null,'$annee','$reference')"); $insertion->execute(); //insertion dans la table de liens auteur_biblio foreach ($id_auteur as $row=>$value){ $insertion_lien = $connexion->prepare ("INSERT INTO `lien_auteur_biblio`(ID_Biblio,`ID_Auteur`) VALUES('???','$value[]')"); $insertion_lien->execute();}; echo "<p>Votre référence a bien été insérée. Vous allez être redirigés vers la liste bibliographique"."<br>";
Clément
Partager