php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.02.2009, 15:55  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] [MySQL] Forum - 2 Query-Fragen

Hallo,

hier meine 3 Tabellen, die ich für die Foren benötige: Unbenannt › Ablage › ubuntuusers.de

Habe vor zunächst mal alle Foren auszugeben inkl. der Anzahl der Themen und die Anzahl der Beiträge. Mein bisheriges Query ist folgendes:
Code:
SELECT boards.id, boards.title, boards.description FROM boards
Versucht habe ich bereits folgendes:
Code:
SELECT boards.id, boards.title, boards.description, COUNT(threads.id) AS cntThreads, COUNT(posts.id) AS cntPosts FROM boards JOIN threads ON threads.board = boards.id JOIN posts ON posts.thread = threads.id
Funktionierte aber leider nicht.

Desweiteren wollte ich alle Themen eines Boards inkl. der Anzahl der Beiträge.
Hier mein bisheriges Query:
Code:
SELECT threads.id, posts.title, posts.author, posts.timestamp FROM threads JOIN posts WHERE posts.thread = threads.id AND threads.board = '" . mysql_real_escape_string($boardID) . "' ORDER BY posts.id
Auch hier habe ich folgendes Versucht:
Code:
SELECT threads.id, posts.title, posts.author, posts.timestamp, COUNT(posts.id) AS cntPosts FROM threads JOIN posts ON posts.thread = threads.id WHERE threads.board = '" . mysql_real_escape_string($boardID) . "' ORDER BY posts.id
Auch hier funktionierte das Ganze nicht. Zur Zeit bekomme ich alle Foren ohne Anzahl der Themen und Beiträge und die Auflistung aller Themen, jedoch auch bspw. den "Re: Test 3" Post mit aufgelistet - sprich auch alle Posts.

Wäre sehr dankbar für Hilfe.
Mit freundlichen Grüßen,
Danny.
WasserDragoon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.02.2009, 15:59  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Du solltest auch nach threads.id gruppieren mit GROUP BY
cycap ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:02  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Super, danke.
Das mit den Threads klappt schonmal.

Fehlt nur noch die Anzahl der Themen und Beiträge in der Foren-Auflistung und die Anzahl der Beiträge in der Thread-Auflistung.
WasserDragoon ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:04  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ich steig nicht durch was jetzt klappt und was nicht, völliges wirrwarr. Vielleicht solltest du das ganze mal durchnummerieren hier im Forum.
cycap ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:13  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Sorry, wenn das so unübersichtlich sein sollte.
Ich versucht das nochmal übersichtlicher zu machen:

Mein aktuelles Query für die Auflistung der Foren:
Code:
SELECT id, title, description FROM boards
Und hier mein aktuelles Query für die Auflistung der Threads:
Code:
SELECT threads.id, posts.title, posts.author, posts.timestamp FROM threads JOIN posts WHERE posts.thread = threads.id AND threads.board = '" . mysql_real_escape_string($boardID) . "' GROUP BY threads.id ORDER BY posts.id
Ich möchte nun im Query für die Forenauflistung die Anzahl der Threads und die Anzahl der Posts selektieren.

Desweiteren möchte im Query für die Threadauflistung die Anzahl der Posts selektieren.
WasserDragoon ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:17  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Ich möchte nun im Query für die Forenauflistung die Anzahl der Threads und die Anzahl der Posts selektieren.
Das Query hast du ja schon fast (siehe Post 1), musst halt noch board.id Gruppieren... hättest du auch selber drauf kommen können, gerade nach meiner letzten Hilfestellung.

Zitat:
Desweiteren möchte im Query für die Threadauflistung die Anzahl der Posts selektieren.
das Prinzip ist doch immer das gleiche...
cycap ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:22  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Code:
SELECT boards.id, boards.title, boards.description, COUNT(threads.id) AS cntThreads, COUNT(posts.id) AS cntPosts FROM boards JOIN threads ON threads.board = boards.id JOIN posts ON posts.thread = threads.id GROUP BY boards.id
Damit bekomme ich aber im Supportforum 4 Themen und 4 Beiträge angezeigt, wobei die Beiträge ja korrekt sind. Nur sind es 3 Themen. Und die anderen beiden Foren bekomme ich aufgrund keiner Themen garnicht erst angezeigt...
WasserDragoon ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:25  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Also bevor ich hier weiter mache darfst du dich erstmal bemühen: SQL Formatter / SQLFormatter formats SQL Statements
cycap ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:30  
Benutzer
 
Registriert seit: 18.02.2009
Beiträge: 53
WasserDragoon befindet sich auf einem aufstrebenden Ast
Standard

Hier bekomme ich nicht alle Foren, bekomme nur die, die Themen haben und die Anzahl der Themen ist komischerweise gleich der Anzahl der Beiträge
Code:
SELECT   boards.id,
         boards.title,
         boards.description,
         COUNT(threads.id) AS cntThreads,
         COUNT(posts.id)   AS cntPosts
FROM     boards
         JOIN threads
         ON       threads.board = boards.id
         JOIN posts
         ON       posts.thread = threads.id
GROUP BY boards.id
Hier das funktioniert bestens, ich bekomme die korrekte Anzahl der Beiträge in einem Thema:
Code:
SELECT   threads.id,
         posts.title,
         posts.author,
         posts.timestamp,
         COUNT(posts.id) AS cntPosts
FROM     threads
         JOIN posts
         ON       posts.thread = threads.id
WHERE    threads.board         = '" . mysql_real_escape_string($boardID) . "'
GROUP BY threads.id
ORDER BY posts.id

Geändert von WasserDragoon (18.02.2009 um 16:36 Uhr).
WasserDragoon ist offline   Mit Zitat antworten
Alt 18.02.2009, 16:41  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Hmm geht vielleicht auch schöner, aber ich würd jetzt das zweite Statement einfach als Subquery in das erste joinen.
cycap ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Query funktioniert nur in PHPMyAdmin verdemis Datenbanken 2 25.01.2009 22:33
Forum in eigenes Projekt einbinden SingleSignOn agrajag PHP Tipps 2008 4 12.10.2007 15:15
PhpBB Forum an bestehende Userdatenbank anknüpfen ChrisV PHP Tipps 2006 8 02.10.2006 13:17
Kniffelig: DB Layout check, Instanzierbares Forum [pic] Melchior Datenbanken 6 09.09.2006 16:49
PHP Forum – ungelesene Beiträge im Forum I-Spy PHP Tipps 2005-2 14 09.10.2005 13:07
[Erledigt] Forum ohne mySQL ??? Off-Topic Diskussionen 14 15.07.2005 00:08
Logindaten aus dem phpbb2 Forum PHP-Fortgeschrittene 5 19.10.2004 22:00
Forum sortieren Datenbanken 1 07.09.2004 13:21
PHP Galerie & Forum auf Seite includen PHP Tipps 2004 3 27.08.2004 09:54
Eigenes FOrum PHP Tipps 2004 11 14.08.2004 13:03
[Erledigt] Query läuft nicht Datenbanken 6 13.08.2004 21:13
[Erledigt] Fragen über Fragen... wer kann helfen? PHP Tipps 2004 2 08.07.2004 21:12
Gesucht - Forum für Anfänger? Off-Topic Diskussionen 17 03.07.2004 13:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
forum frage zu query, php forum fragen, mysql thread anzahl postings, 2 query mysql, mysqlforum

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum