2010-03-05 7 views
1

J'écris un composant et j'ai un scenerio de stocker des données dans plusieurs tables avec la relation un-à-plusieurs.Comment stocker des données dans plusieurs tables dans Joomla?

table principale est étudiant et table enfant est Student_Subjects.
Un étudiant peut sélectionner plusieurs sujets.

Je veux stocker les données dans Student_subject table avec étudiant. Les données sont soumises à partir d'un formulaire où l'utilisateur sera créé et les sujets seront sélectionnés. Actuellement, j'utilise JTable Class.

Existe-t-il un moyen d'exécuter une requête de transaction pour stocker les données dans les deux tables? Si oui, comment puis-je obtenir l'identifiant de l'étudiant (généré automatiquement) le stocker dans Student_Subject en utilisant le même lot de requête de transaction?

S'il vous plaît guider. Exemple avec le code est très apprécié et nécessaire.

Répondre

1

Pourquoi voudriez-vous l'exécuter simultanément? Vous pouvez exécuter 2 requêtes pour ce faire. Insérez d'abord votre « étudiant » comme ceci:

$db =& JFactory::getDBO(); 
$db->setQuery($query); 
$db->query(); 

ensuite obtenir l'ID du dernier élément inséré comme ceci:

$student_id = $db->insertid(); 

Maintenant que vous avez l'ID maître que vous pouvez faire votre prochain insert.