![]() |
mysql
hi forum,
ich hab ein forum gebastelt (php/mysql) mit folgender tabellenstruktur: forum_master (=forenbeiträge) datum, titel, text, userid forum_detail (=antworten) datum, text,userid nun möchte ich eine liste generieren in der alle foreneinträge (master und detail) nach datum sortiert dargestellet werden. doch egal wie ich es anstelle, schaff ich es nicht die antworten in die sortierung einzubeziehen. geht das nur über eine UNION-SELECT oder gibts da auch andere möglichkeiten? |
Auf den ersten Blick - ja, UNION. Oder du überdenkst deine Tabellenstruktur.
~ |
Du solltest deine Tabellenstruktur vielleicht noch überarbeiten.
Was ist im Moment dein Primary key? datum,titel und userid gemeinsam? Ich würde eine MessageId für master&detail einführen, die detail Beitrage könnten so (z.B. mit einem Attribut "gehört_zu" das die MessageID des ursprünglichen Beitrages enthält) mitbekommen zu welchem Master sie gehören. Außerdem werden so auch Antworten auf antworten möglich (gehört_zu verweist auf eine detail Nachricht). Zu deinem Problem: Ich kenne nur die Möglichkeit mit UNION . Jak |
re jak,
anbei meine tabellenstruktur etwas genauer: [forum_master] FMNR (primarykey) datum userid titel trext [forum_detail] FDNR (primarykey) FMNR (key) datum userid trext zu sehen ist das ganze auf meiner seite: www.paddeln.at |
Nimm ein Timestamp Feld mit beispielsweise dem Namen Zeitstempel in die beiden Tabellen auf und sortiere mit FDMR,Zeitstempel.
|
Ah, es gibt also doch eine art ID. Hätte mich auch gewundert...
BTW.: die Homepage gefällt mir. Schönes design. Verwendest du irgendein CMS oder nur eine DB? Jak |
@kikakater,
versteh ich nicht ganz, mein datumsfelder sind ja eh Timestamps. und wie soll ich die sortieren wenn es die in zwei tabellen gibt? @jak, danke - hab bei meiner hp kein cms verwendet, alles selbst gebastelt mit php und mysql. |
(SELECT FMNR,TIMESTAMP_AT_INDIVIDUAL_INSERT,TITEL FROM forum_master ORDER BY FMNR,TIMESTAMP_AT_INDIVIDUAL_INSERT)
UNION (SELECT FMNR,TIMESTAMP_AT_INDIVIDUAL_INSERT,TREXT FROM forum_detail ORDER BY FMNR,TIMESTAMP_AT_INDIVIDUAL_INSERT) ORDER BY FMNR,TIMESTAMP_AT_INDIVIDUAL_INSERT; Das Feld TIMESTAMP_AT_INDIVIDUAL_INSERT (=datum) enthält immer ein unterschiedliches Datum+Uhrzeit. Anhand des Inhalts dieses Feldes wird eine Sortierung nach ZUERST Titel und dann chronologisch den Texteinträgen vorgenommen. Der eigentliche Oberordnungsbegriff ist die jeweilige Titel ID - also FMNR. mfg Kikakater |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag