Question

J'ai trois tableaux essentiellement dévalent, comme:

  • sujet
  • section (références id sujet)
  • paragraphe (références sujet id et id section)

Quelle est la meilleure méthode d'écrire des instructions mysql pour créer le sujet initial / section / sous-section afin que je puisse saisir le son id (auto_incremented) des lignes nouvellement créées et les utiliser pour les insérer dans la seconde deux?

modifier J'utilise phpbb3, je sais pas si cela fait une énorme différence, mais je l'utilise normalement la fonction db-sql_query de $ ()

Était-ce utile?

La solution

De la société mère, en bas de la ligne.
Ensuite, vous pouvez utiliser soit LAST_INSERT_ID () , ou insert dans le SELECT:

INSERT INTO TOPIC
  (topic_id, topic)
VALUES (DEFAULT, $topic);

INSERT INTO SECTION
  (topic_id, section)
SELECT topic_id, $section
  FROM TOPIC
 WHERE topic = $topic

INSERT INTO SUBSECTION
  (section_id, topic_id, subsection)
SELECT section_id, topic_id
  FROM SECTION 
 WHERE section = $section

Cet exemple suppose que TOPIC.topic_id, SECTION.section_id et SUBSECTION sont auto_increment, les colonnes de clé primaire.

Autres conseils

Vous pouvez utiliser mysql_insert_id () pour obtenir le dernier ID d'insertion. voir de référence pour plus de détails.

Pour autant que je comprends, il n'y a qu'une seule façon, ce qui est haut vers le bas.
Pour ajouter un paragraphe à une section, vous devez avoir une section déjà insérée.
Pour ajouter un sujet à un paragraphe, assurez-vous que vous avez ajouté le paragraphe premier.
Sur le chemin, vous garder une trace de la dernière ID Inséré (si vous venez de créer il) pour donner à l'entité suivante la ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top