login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Groeperen per datum (group by?) (Opgelost)

Offline Nielzie - 10/10/2012 11:00
Avatar van NielzieLid Hey allen,

In mijn database beschik ik over tal van wedstrijd-data (dewelke aut. worden opgeladen en geupdate door een CSV bestand).
Echter zou ik deze graag ook op een webpagina weergegeven, maar gegroepeerd (+ titeltje) per wedstrijddatum.

Meer bepaald heb ik deze data in de tabel zitten:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ + + + + +
+ datum + thuissteam + uitteam + thuisscore + uitscore +
+ + + + + +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ + + + + +
+ 06/10/2012 + Team A + Team B + + +
+ 06/10/2012 + Team C + Team D + + +
+ 07/10/2012 + Team B + Team C + + +
+ 06/10/2012 + Team L + Team H + + +
+ 07/10/2012 + Team D + Team S + + +
+ 07/10/2012 + Team H + Team J + + +
+ + + + + +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Nu had ik deze online graag weergegeven, maar gegroepeerd door een ondertitel, bv:

06 oktober 2012

Team A - Team B
Team C - Team D
Team L - Team H

07 oktober 2012

Team B - Team C
Team D - Team S
Team H - Team J


Moet dit gebeuren via een group by? Of is hiervoor een andere manier?
De voorlopig PHP-code dewelke ik heb is de volgende (maar deze zet gewoon de wedstrijden allemaal onder elkaar...)

  1. <?php
  2.  
  3. $sql = "select * from bb_csv where thuisscore = '' order by datum, thuisteam";
  4. $rst = mysql_query($sql);
  5. while($data = mysql_fetch_array($rst)){
  6.  
  7. ?>


Hopelijk kan iemand me hiermee verderhelpen...

4 antwoorden

Gesponsorde links
Offline marten - 10/10/2012 11:12
Avatar van marten Beheerder vermijd zoveel mogelijk group en order statements in de je query. Wanneer je ze gebruikt maak dan goed gebruik van indexes.

Leesvoer:
http://dev.mysq...ation.html

Zorg er in ieder geval voor dat je geen gebruik maakt van select * maar vermeld alleen de kolommen welke je daadwerkelijk nodig bent, datum, thuis_team, uit_team.

Wanneer je een alternatief zoekt voor het sorteren op datum in MySQL: je kan een array vullen in PHP.

  1. 6-10-2012 => array (
  2. 0 => array (
  3. 'Team A', 'Team B'
  4. )
  5. )
  6. )


vervolgens kan je door de array loopen.
Offline Nielzie - 10/10/2012 11:16
Avatar van Nielzie Lid de reden voor de select * is dat ik beroep moet doen op alle kolommen dewelke aanwezig zijn (in mijn voorbeeld vermeld ik er maar 3).

dus je zou aanraden om met de array te werken ipv een group by?
Offline marten - 10/10/2012 11:18
Avatar van marten Beheerder Als jij zeker weet te voldoen aan de eisen welke in het leesvoer document staan kan jij gebruik maken van een group by zonder performance verlies te draaien. Maar het weergeven wil je toch op datum doen dus je zal iets van een array moeten maken waardoor je de query lekker snel kan houden en het werk door PHP kan laten doen.
Bedankt door: Nielzie
Offline Nielzie - 10/10/2012 11:20
Avatar van Nielzie Lid Oké, bedankt!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s