WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   mysql (http://www.wcm.at/forum/showthread.php?t=140369)

weev 27.07.2004 10:50

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?

käptn 27.07.2004 11:26

Auf den ersten Blick - ja, UNION. Oder du überdenkst deine Tabellenstruktur.

~

jak 27.07.2004 11:31

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

weev 28.07.2004 16:14

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

kikakater 28.07.2004 18:21

Nimm ein Timestamp Feld mit beispielsweise dem Namen Zeitstempel in die beiden Tabellen auf und sortiere mit FDMR,Zeitstempel.

jak 28.07.2004 19:34

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

weev 29.07.2004 07:58

@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.

kikakater 30.07.2004 18:04

(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