Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP / MySQL Frage

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 04.08.2008 um 01:36 Uhr

Hallo =)

Es geht um folgende Tabelle:
easyts_newscomment {
-> newscomment_id
-> newscomment_user
-> newscomment_date
-> newscomment_text
-> newscomment_news
}

Nun kann natürlich ein User in dieser Tabelle "öfters" vorkommen.

Was ich nun machen will ist die Anzahl der Einträge jedes Users auslesen.
Wie mache ich das am besten?
Am liebsten wäre mir eine Lösung auf SQL-Basis und nicht auf PHP-Basis
wbcm - 41
Fortgeschrittener (offline)

Dabei seit 09.2005
29 Beiträge
Geschrieben am: 04.08.2008 um 01:44 Uhr

http://dev.mysql.com/doc/refman/5.1/de/group-by-functions.html

schau mal nach der Funktion COUNT(expr), sollte sein, was du suchst
ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 04.08.2008 um 02:01 Uhr

Ich verstehe nicht so ganz wie ich das Query bilden soll.
Mal als Beispiel:

easyts_newscomment {

row1: `newscomment_user` = '7'
row2: `newscomment_user` = '7'
row3: `newscomment_user` = '2'
row4: `newscomment_user` = '2'
row5: `newscomment_user` = '2'
row6: `newscomment_user` = '5'

}

Jetzt möchte ich für User 7 den Wert 2, für User 2 den Wert 3 und für User 5 den Wert 1

Vielen Dank schonmal für die Hilfe =)
wbcm - 41
Fortgeschrittener (offline)

Dabei seit 09.2005
29 Beiträge
Geschrieben am: 04.08.2008 um 02:19 Uhr
Zuletzt editiert am: 04.08.2008 um 02:20 Uhr

SELECT newscomment_user, COUNT(*) FROM easyts_newscomment GROUP BY newscomment_user;

sollte so gehen, das Ergebnis wäre dann so:

-----------------------------------------
| newscomment_user | COUNT(*) |
*****************************************
| 7 | 2 |
| 2 | 3 |
| 5 | 1 |
-----------------------------------------

Das Query ist folgendermaßen aufgebaut:
- das newscomment_user, damit du weißt, welche Anzahl zu welchem User gehört
- COUNT(*) zählt die Anzahl der Einträge
From sollte klar sein
Das GROUP BY sorgt dafür, dass die Ergebnisse der COUNTs zu den einzelnen newscomment_user-Einträgen zusammengefasst werden


[edit]meine schöne formatierung :/ gibts hier sowas wie code-tags? :X[/edit]
DjKoma - 40
Experte (offline)

Dabei seit 01.2006
1906 Beiträge

Geschrieben am: 04.08.2008 um 02:20 Uhr

Zitat von wbcm:

http://dev.mysql.com/doc/refman/5.1/de/group-by-functions.html

schau mal nach der Funktion COUNT(expr), sollte sein, was du suchst


Schau dir doch das Beispiel an... hab zwar schon lange nicht mehr mit SQL gearbeitet, aber mal schnell überflogen müsste es so (ähnlich) funktionieren....

SELECT easyts_newscomment.newscomment_id ,COUNT(*)
FROM easyts_newscomment ,easyts_user
GROUP BY newscomment_user ;


Why is 6 afraid of 7? Because 7 8 9!

ZER0-CooL - 36
Champion (offline)

Dabei seit 09.2004
4459 Beiträge

Geschrieben am: 04.08.2008 um 11:38 Uhr

Zitat von wbcm:

SELECT newscomment_user, COUNT(*) FROM easyts_newscomment GROUP BY newscomment_user;

sollte so gehen, das Ergebnis wäre dann so:

-----------------------------------------
| newscomment_user | COUNT(*) |
*****************************************
| 7 | 2 |
| 2 | 3 |
| 5 | 1 |
-----------------------------------------

Das Query ist folgendermaßen aufgebaut:
- das newscomment_user, damit du weißt, welche Anzahl zu welchem User gehört
- COUNT(*) zählt die Anzahl der Einträge
From sollte klar sein
Das GROUP BY sorgt dafür, dass die Ergebnisse der COUNTs zu den einzelnen newscomment_user-Einträgen zusammengefasst werden


[edit]meine schöne formatierung :/ gibts hier sowas wie code-tags? :X[/edit]


Vielen Dank so hat es funktioniert, hab es dann noch umgebaut damit es mir die 10 user mit den meisten comments aus gibt und ich war zufrieden :-D

SELECT `newscomment_user`, COUNT(*) as `newscomment_count`
FROM `easyts_newscomment`
GROUP BY `newscomment_user`
ORDER BY `newscomment_count` DESC
LIMIT 10;


Nochmals Vielen Dank :-)
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -