tellen uit de database?
heb namelijk een forum en wil een top 3 van posters weergeven.
2 tabellen: users (user info) en posts (berichten forum)
in tabel posts staat userID in deze tabel word het ID uit de tabel users geplaatst als iemand een bericht plaatst.
nu wil ik dus zoeken welk userID er het meeste in staat
het moet iets zijn in de richting
$sqlTop3 = mysql_query("SELECT userID FROM 'posts'");
$Top3 = mysql_num_rows($sqlTop3);
maar op deze manier (logisch :P ) telt hij dus alle berichten.
ik wil dus dat hij telt hoevaak elke userID voorkomt :S
en dan de resultaten "DESC LIMIT 3" als dat kan :P
als iemand een ideetje heeft graag :P
word dol van alles wat ik probeer
Op de manier die jij wilt zou ik niet weten hoe het moet. Wat je wel kunt doen is een apparte record per user erbij zetten. Telkens als hij post tel je er hier eentje bij op. Zo kun je heel makkelijk een top 3 krijgen
maar wil de database wat inkorten ;)
al die records :P
is de regel die ik nu gebruik maar wil dat de database minder gaat doen en php meer voor me doet ;)
hoe minder er geschreven moet worden per post naar de db hoe sneller en beter het gaat...
en hoe minder kans op fouten tijdens dit proces ;)
met LIMIT 3 natuurlijk er bij :P
Met deze query laat je de database het telwerk doen, die kan dat uitstekend zelf doen.
En de database inkorten? Ik weet niet hoeveel miljoen records jij in de database hebt staan, maar meestal staan die records niemand in de weg. En om de boel te versnellen, is het aanleggen van de juiste indexen zinvoller.
Waarom zou je moeten tellen? gewoon selecteren met een order by die van hoog naar laag gaat en dan limit 3 instellen :)