Hallo zusammen
Ich möchte im Menü meiner Website sowohl dynamische Seiten als auch Dokumente einbinden. Klickt man auf eine Seite, wird diese angezeigt, klickt man auf ein Dokument, öffnet sich das PDF.
Innerhalb des Menüs verwende ich verschiedene Menüpunkte, sogenannte Kategorien. Zum Beispiel Menüpunkt (Kategorie) 'Verein' beinhaltet die Seiten
- Agenda
- News
- Vorstand
- Kontakt
- Links
und das Dokument 'Abstimmungsergebnisse'.
Die Seiten liegen in der Table pages, die Dokumente in der Table documents. Ich hole die Seiten und Dokumente mittels UNION ALL aus der DB. Beide Tabes haben die Colums 'id', 'catID', 'title', 'usort'. 'usort' bestimmt die Anordnung innerhalb des Menüpunktes/Kategorie 'Verein'. Das ist auch der Grund, warum ich UNION verwende, damit ich Docs und Pages innerhalb einer Kategorie sortieren kann. Die Kategorie 'Verein' hat die ID 35. Also mache ich ein UNION, so dass ich alle Seiten/Dokumente assoziiert mit ID 35 bekomme.
[PHPWIKI]SELECT id AS pageid,title AS page title,usort FROM becustompages_pages WHERE catID='35'
UNION ALL
SELECT id AS docid,title AS ductile,sort FROM bedocuments_documents WHERE catID='35'
ORDER BY usort ASC[/PHPWIKI]
Das klappt soweit so gut. Zumindest erhalte ich folgende Ausgabe, was dem entspricht, was ich erhalten möchte:
[PHPWIKI]
pageid | pagetitle | usort
117 | News | 1
118 | Agenda | 2
116 | Vorstand | 3
60 | Abstimmung Statuten 2011 - Abstimmungsergebnis | 4
125 | Links | 5
51 | Kontakt | 6
[/PHPWIKI]
Nun habe ich aber das Problem, dass ich für die PHP Ausgabe unterscheiden möchte, ist es ein Dok oder eine Seite. Entsprechend möchte ich einen anderen Link verwenden (pages.php?id=) oder (documents.php?id=). Wie kann ich mit einem UNION dennoch ausfindig machen, um was für einen Eintrag es sich handelt? Wie im Select ersichtlich, versuchte ich, die id Columns neu zu benennen, um somit erkennen zu können, ist es eine pageid oder docid. Doch das klappt leider nicht… Es werden mir alle Einträge als pageid ausgegeben…
Kan mir jemand einen Tipp geben, wie ich Daten aus zwei Tabellen auslesen und sortieren kann, so dass ich danach auch noch ausfindig machen kann, aus welcher Table die Daten entstammen?
Vielen Dank!
Gruss, Roland
Ich möchte im Menü meiner Website sowohl dynamische Seiten als auch Dokumente einbinden. Klickt man auf eine Seite, wird diese angezeigt, klickt man auf ein Dokument, öffnet sich das PDF.
Innerhalb des Menüs verwende ich verschiedene Menüpunkte, sogenannte Kategorien. Zum Beispiel Menüpunkt (Kategorie) 'Verein' beinhaltet die Seiten
- Agenda
- News
- Vorstand
- Kontakt
- Links
und das Dokument 'Abstimmungsergebnisse'.
Die Seiten liegen in der Table pages, die Dokumente in der Table documents. Ich hole die Seiten und Dokumente mittels UNION ALL aus der DB. Beide Tabes haben die Colums 'id', 'catID', 'title', 'usort'. 'usort' bestimmt die Anordnung innerhalb des Menüpunktes/Kategorie 'Verein'. Das ist auch der Grund, warum ich UNION verwende, damit ich Docs und Pages innerhalb einer Kategorie sortieren kann. Die Kategorie 'Verein' hat die ID 35. Also mache ich ein UNION, so dass ich alle Seiten/Dokumente assoziiert mit ID 35 bekomme.
[PHPWIKI]SELECT id AS pageid,title AS page title,usort FROM becustompages_pages WHERE catID='35'
UNION ALL
SELECT id AS docid,title AS ductile,sort FROM bedocuments_documents WHERE catID='35'
ORDER BY usort ASC[/PHPWIKI]
Das klappt soweit so gut. Zumindest erhalte ich folgende Ausgabe, was dem entspricht, was ich erhalten möchte:
[PHPWIKI]
pageid | pagetitle | usort
117 | News | 1
118 | Agenda | 2
116 | Vorstand | 3
60 | Abstimmung Statuten 2011 - Abstimmungsergebnis | 4
125 | Links | 5
51 | Kontakt | 6
[/PHPWIKI]
Nun habe ich aber das Problem, dass ich für die PHP Ausgabe unterscheiden möchte, ist es ein Dok oder eine Seite. Entsprechend möchte ich einen anderen Link verwenden (pages.php?id=) oder (documents.php?id=). Wie kann ich mit einem UNION dennoch ausfindig machen, um was für einen Eintrag es sich handelt? Wie im Select ersichtlich, versuchte ich, die id Columns neu zu benennen, um somit erkennen zu können, ist es eine pageid oder docid. Doch das klappt leider nicht… Es werden mir alle Einträge als pageid ausgegeben…
Kan mir jemand einen Tipp geben, wie ich Daten aus zwei Tabellen auslesen und sortieren kann, so dass ich danach auch noch ausfindig machen kann, aus welcher Table die Daten entstammen?
Vielen Dank!
Gruss, Roland
Kommentar