Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2008, 16h04   #1
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Par défaut remplir simultanément deux tables

Bonjour,

Je me pose une petite question: il faut que je remplisse deux tables :
- eleves, qui contient nom, prenom, mail, un champ id et un champ id-groupe
- groupe, qui contient sujet, date et un champ id
La valeur de eleves.id-groupe est déduite de la valeur que prend groupe.id à l'insersion. Pour le moment, je pense faire les choses en deux temps :
1) une première requête insère le nouveau groupe et j'extrait la valeur la plus élevée de groupe.id
2) j'insère les élèves dans leur table en assignant à eleves.id-groupe la valeur récupérée en 1).
Est-ce qu'il y a mieux à faire ? Est-ce qu'il n'y a pas un risque, si deux requêtes arrivent simultanément, qu'il y ait une collision malheureuse ? Si oui, existe-t-il un moyen de l'éviter ? Genre une manière siouxe d'insérer lesnouveaux enregistrements...

Merci beaucoup

Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 02h53   #2
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Non il y a pas de solutions plus intelligente, tu créés ton groupe puis tu récupères l'ID du groupe créé et tu créés ensuite tes élèves.

En ce qui concerne les collisions, tu peux les éviter, tu as plusieurs solutions :
- Tu lock ta table, tu la liberes une fois que tu a récupéré l'ID
- Tu peux utiliser LAST_INSERT_ID / mysql_insert_id(), si tu utilises MYSQL
- Tu peux utiliser les procédures stockés, pour faire l'insertion et la récupération de l'ID inséré

A+

Alain
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 08h14   #3
Membre éprouvé
 
Inscription : août 2006
Messages : 590
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2006
Messages : 590
Points : 401
Points : 401
Merci beaucoup de ta réponse !!!
On va donc faire ainsi !!
Hugo
[Hugo] est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h26.


 
 
 
 
Partenaires

Hébergement Web