login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Totaal aantal berichten in een database tellen.

Offline denniseik - 16/12/2008 12:25
Avatar van denniseikLid Door middel van een database (mysql) weergeven wij voor een site van school berichten op een pagina.

Nu is het zo dat we het totaal aantal berichten uit een tabel van mysql willen weergeven per categorie.

De opbouw van onze tabel berichten is als volgt:
id - titel - bericht - categorie

Bijvoorbeeld:
Algemeen - 5 berichten
Sport - 3 berichten
Economie - 7 berichten
enz.

We hebben een tijd lopen zoeken op de site en het zal er vast wel staan, maar konden het niet vinden.
Hulp graag.

8 antwoorden

Gesponsorde links
Offline Flex1986 - 16/12/2008 12:33 (laatste wijziging 16/12/2008 12:39)
Avatar van Flex1986 Gouden medaille

Senior Member
  1. SELECT categorie ,COUNT(categorie) AS berichten FROM berichten GROUP BY categorie


Deze zou moeten werken als het goed is.

Voor uitleg over de functies verwijs ik je naar:
Sitemasters: MySQL GROUP BY
Sitemasters: MySQL Wiskundige Functies
Offline Aar - 16/12/2008 17:21
Avatar van Aar PHP interesse Ik zou het aantal gewoon hard in de database opslaan, en steeds verhogen bij een replie of topic ofzo.
Bespaart een hoop COUNT queries die weer per forum worden gedraaid.
Offline mathiasB - 17/12/2008 12:03
Avatar van mathiasB HTML interesse PHP.net: mysql_num_rows kan toch ook?
Offline Martijn - 17/12/2008 12:06
Avatar van Martijn Crew PHP ja, dan weet hij een totaal, maar niet per categorie 
Offline Diko - 17/12/2008 12:55
Avatar van Diko PHP interesse
Aar schreef:
Ik zou het aantal gewoon hard in de database opslaan, en steeds verhogen bij een replie of topic ofzo.
Bespaart een hoop COUNT queries die weer per forum worden gedraaid.


Dat is echt de meest inefficiente oplossing ever.

In plaats van dat je een GROUP BY query draait draai je er alsnog een om het totaal op te vragen uit een andere tabel.

1. Stel dat je update query dienst weigert.. dan klopt je resultaat niet.
2. Een database server kan prima duizenden en zelfs miljoenen records handelen. Het verschil tussen een GROUP BY query en een SELECT zonder GROUP BY is op een gemiddelde webserver niet merkbaar. (tenzij je idd miljarden records hebt)
3. Je creeerd extra overhead in je database door procesgegevens op te slaan. Elke basis database tuto over normaliseren begint met "VERWIJDER ALLE PROCESSGEGEVENS!".

Kortom: Doe gewoon wat Flex zegt 
Offline Flex1986 - 17/12/2008 14:21
Avatar van Flex1986 Gouden medaille

Senior Member
Citaat:
Kortom: Doe gewoon wat Flex zegt


Perfecte conclusie  
Offline mathiasB - 17/12/2008 15:24
Avatar van mathiasB HTML interesse
DeviourSoul schreef:
ja, dan weet hij een totaal, maar niet per categorie 


Als hij per cateogorie een query maakt toch wel?

of een functie met als return het aantal
Offline Martijn - 17/12/2008 15:55
Avatar van Martijn Crew PHP dat kan met meerder queries ja. Of gewoon een group by dat doet precies hetzelfde in 1 query
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.181s