[PHP/SQL] Query zum Zählen von Datensätzen?

DS_BoneDaddy

Grand Admiral Special
Mitglied seit
11.11.2001
Beiträge
2.637
Renomée
13
Standort
Raum Bremen
Nabend...
Nach langem hin und her im Handbuch und Rumprobieren gebe ich es auf und wende mich mal an euch. ;-)

Mein Vorhaben:
Zählen welcher User wie oft etwas geschrieben hat.

Die Daten:
PHP:
-----------------------
| id | user_id | post |
-----------------------
| 01 | 1111111 | 1234 |
| 02 | 1111111 | 1234 |
| 03 | 2222222 | 1234 |
| 04 | 2222222 | 1234 |
| 05 | 3333333 | 1234 |
-----------------------

Ich möchte nun herausbekommen, dass User 1 insgesamt 2x etwas zum "Post" 1234 geschrieben hat, User 2 ebenfalls 2x und User 3 eben 1x.

Danke für eure Hilfe!
 
Tach erstmal

select count(`id`) as `count_posts` from `table` where `user_id`=11111111 and `post`=1234

ergibt eine ergebnistabelle mit der spalte count_posts. die einzige ergebniszeile enthält dann in der spalte count_posts die anzahl der posts dieses einen users zu einem thema.
 
Original geschrieben von Procyon
Tach erstmal

select count(`id`) as `count_posts` from `table` where `user_id`=11111111 and `post`=1234

ergibt eine ergebnistabelle mit der spalte count_posts. die einzige ergebniszeile enthält dann in der spalte count_posts die anzahl der posts dieses einen users zu einem thema.

Fast das was ich brauche. dankeschön!

Nur möchte ich nicht vorgeben welche User_id erzählen soll, sondern ich möchte einfach die ersten 3 User haben, die am meisten zum Post "1234" geschrieben haben.
Hab schon probiert es umzustellen, aber kriege es nicht hin.
 
PHP:
mysql_query("SELECT *, count(*) AS 'count_posts' FROM table WHERE post = 1234 LIMIT 3
");

Versuchs mal so ;)
 
Da fehlt noch ein "ORDER BY count_posts DESC" vor dem Limit-Eintrag, würde ich sagen und das * ist überflüssig und würde zu zu vielen Reihen führen. Außerdem muss man das noch gruppieren:

Code:
SELECT COUNT(*) AS posts, user_id 
FROM table
WHERE post = 1234
GROUP BY user_id
ORDER BY posts DESC
LIMIT 3
 
War ja keine Kritik, nur eine Ergänzung zur Lösung ;)

Des weiteren sind die ' ' um das count_posts kein gültiges SQL, sondern eine (sinnlose) mysql-Erfindung *motz* ;D ;)
 
Wenn ich es mir angucke, fällt mir auf, dass ich es normalerweise auch gar nicht mache. Aber per Hand schreibe ich sowieso keine Queries mehr, dafür ich ich Funktionen die mir das abnehmen :)
 
Georgs antowort iss richtig. :-)
das group by user ist wichtig .....
 
Zurück
Oben Unten