WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 27.07.2004, 10:50   #1
weev
Senior Member
 
Registriert seit: 02.03.2002
Beiträge: 123


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?
____________________________________
-- free tibet --
weev ist offline   Mit Zitat antworten
Alt 27.07.2004, 11:26   #2
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

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

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 27.07.2004, 11:31   #3
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

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
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 28.07.2004, 16:14   #4
weev
Senior Member
 
Registriert seit: 02.03.2002
Beiträge: 123


Standard

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
____________________________________
-- free tibet --
weev ist offline   Mit Zitat antworten
Alt 28.07.2004, 18:21   #5
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Nimm ein Timestamp Feld mit beispielsweise dem Namen Zeitstempel in die beiden Tabellen auf und sortiere mit FDMR,Zeitstempel.
kikakater ist offline   Mit Zitat antworten
Alt 28.07.2004, 19:34   #6
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

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
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 29.07.2004, 07:58   #7
weev
Senior Member
 
Registriert seit: 02.03.2002
Beiträge: 123


Standard

@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.
____________________________________
-- free tibet --
weev ist offline   Mit Zitat antworten
Alt 30.07.2004, 18:04   #8
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

(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
kikakater ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:18 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag