Page 1 sur 1

Inserer des données dans deux tables

Posté : 24 juin 2019, 10:00
par Klimero12
Bonjour,
J'ai beau cherché je ne trouve pas la syntaxe.
Je cherche a faire une appli pour gérer un stand de tir.
J'ai une base de données "tir" contenant deux tables "tireur" et "pistolet"
dans ma première table, 4 colonnes id (auto incrément), nom, prénom, adhérent mail,
dans ma seconde table, 4 colonnes, id (auto incrément), id_tireur, date_tir, résultat
Je précise que les colonnes tireur.id et pistolet.id-tireur sont liées
J'arrive a remplir/modifier/supprimer dans l'une ou l'autre des tables mais je voudrais qu'a la création d'une fiche "tireur" la colonne pistolet.id-tireur enregistre automatiquement la colonne tireur.id.
Merci de votre aide
Eric

Re: Inserer des données dans deux tables

Posté : 24 juin 2019, 10:09
par @rthur
Tu peux utiliser les triggers pour faire cela :
https://openclassrooms.com/fr/courses/1 ... 0-triggers

Toutefois ma recommandation est de faire ta requête dans ton code et pas d'utiliser les triggers, ceci afin de rendre le debugage et les évolutions plus faciles (car toutes les interactions avec la bdd seront stockées au même endroit, dans ton code principal).

Re: Inserer des données dans deux tables

Posté : 24 juin 2019, 11:33
par Klimero12
Merci pour ta réponse mais je débute et les triggers ne semblent pas répondre a mon soucis. J'ai fais plein d'essai avec plein de codes différents mais sans résultat je galère pas mal et je n'arrive pas a faire ce que je veux. Mon dernier test ci dessous

Code : Tout sélectionner

<?php // Connexion à la base de données include_once 'dbconfig.php'; // On récupère les données de l'article séléctionné $reponse = $DB_con->prepare('SELECT * FROM tireur WHERE id = ?'); $reponse->execute(array($_GET['number'])); while ($donnees = $reponse->fetch()) { ?> <!DOCTYPE html> <html lang="fr-FR"> <head> <title>Modifier une fiche tir</title> <meta charset= "utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/home.css" type="text/css" /> </head> <body id="fond"> <?php include('header.php'); include('menu.php'); ?> <div> <h1>Modifier une fiche tir</h1> </div> <p> <label class="modifier" for="id">Id :</label><input id="modif" type="text" name="id" size="50" value="<?php echo $donnees['id'];?>"/><br/> <?php $insert = $DB_con->prepare ('INSERT INTO pistolet (id_tireur) VALUES ($donnees["id"])'); $insert->execute(array($_GET["id_tireur"])); ?> <input type="submit" class="button" value="VALIDER" /> </p> <?php } $reponse->closeCursor(); ?> </form> <?php include('footer.php'); ?> </body> </html>
C'est juste un test et il faut que je refasse la mise en page après mais déjà ça ne marche pas car je n'arrive pas a comprendre la mise en forme du $insert.
Possible que je fasse complétement fausse route. j'ai vu qu'il était possible d'utiliser la commande PDO::lastInsertId mais je n'arrive à trouver la syntaxe.
Merci