php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2009, 15:38  
Neuer Benutzer
 
Registriert seit: 04.01.2009
Beiträge: 2
xiled befindet sich auf einem aufstrebenden Ast
Standard Frage zu Join

Huhu,
ich bin derzeit dabei das Buch "PHP5/MySQL5 Studienausgabe" durchzuarbeiten.
Ich bin bei dem Kapitel, welches sich mit mit dem Thema JOIN Abfragen beschäftigt angelangt und wollte als Übung ein kleines Newsscript mit Kommentaren programmieren.

Hierzu habe ich (gekürzt) folgende Abfrage erstellt:

PHP-Code:
$sql_befehl =  "SELECT newseintrag.id, newseintrag.titel, newseintrag.catid, newseintrag.userid, kategorie.name as catname, benutzer.nutzer as nutzername, COUNT(kommentare.id) AS anzahl
                FROM newseintrag
                JOIN kommentare ON kommentare.newsid=newseintrag.id
                JOIN kategorie ON kategorie.id=newseintrag.catid
                JOIN benutzer ON benutzer.id=newseintrag.userid
                ORDER BY newseintrag.eintragsdatum DESC
                "

Ich möchte die Anzahl der zu einem Newseintrag vorhandenen Kommentare in der Variablen anzahl speichern und so später in der Form Kommentare (x) ausgeben.

Hierzu habe ich in der Tabelle kommentare ein Feld mit dem Namen newsid um die Zuordnung zum Newseintrag herzustellen.

In der Praxis wird mit dem oben genannten Code dann allerdings nur ein Eintrag ausgegeben (also nicht alle vorhandenen News wie es ohne die beiden zeilen für die Kommentare der fall ist) und der Wert der Variablen anzahl ist gleich der gesamten Anzahl an Einträgen der Tabelle kommentare, egal welchen Wert newsid dort hat.

Wo liegt mein Denkfehler?

MfG
xiled ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.01.2009, 10:37  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo und herzlich willkommen im Forum,

um die Anzahl deiner Einträge beidseitig zählen zu können, solltest du eine Beziehungstabelle verwenden, die dir jeweils die ID deines Newseintrags und die ID des Kommentars speichert. Das Zähöen funktioniert dann durch ein ganz einfaches Statements:

Code:
SELECT COUNT(comment_id) AS count FROM comment_2_news WHERE news_id = 123;
bzw.

Code:
SELECT COUNT(news_id)  AS count FROM comment_2_news WHERE comment_id = 123;
In deinem aktuellen Anwendungsfall hast du die Einschränkung, dass du nur die Anzahl der Kommentare eines Newseintrags selektieren.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
 


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
Hallo eine Frage in sachen Forensysteme spikytux HTML, Usability und Barrierefreiheit 11 03.01.2009 15:06
Dringende Frage odde PHP Tipps 2008 5 28.10.2008 19:03
MySQL UNION ALL mit LEFT JOIN? familyman Datenbanken 4 09.10.2008 12:15
Frage zu LDAP Frage (Active Directory) FRAD PHP Tipps 2008 0 01.10.2008 16:11
Mehrfach Join lazydog Datenbanken 2 08.05.2008 16:09
Frage zu meinem JOIN Statement Benjamin Such Datenbanken 4 12.04.2008 13:20
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
Frage wegen Join Verknüpfung Bruno Datenbanken 8 08.12.2006 11:17
SQL-Frage zum JOIN micbur Datenbanken 2 16.11.2006 23:46
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] Abfrageproblem mit Inner Join Datenbanken 15 29.11.2005 18:17
[Erledigt] Join Datenbanken 15 09.03.2005 08:44
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
[Erledigt] kleine inner join frage... PHP-Fortgeschrittene 3 02.11.2004 22:02
[Erledigt] Relations Frage Datenbanken 6 09.09.2004 19:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 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