Ik heb een klein scriptje waaruit informatie gehaald wordt uit verschillende MySQL tabellen. In de eerste tabel staan plaatjes, en dan moet hij een lijst maken met de meest recent geupdate albums. De namen van de albums staan in een andere tabel, dus dit heb ik opgelost via een joined mysql_query (heet het zo?). Als ik dan in een bepaald album op een dag tien plaatjes erbij zet, dan moet hij echter niet tien keer dat album neerzetten, maar gewoon 1 keer, en dan een lijstje met de volgende 8 geupdate albums.
Dit wilde ik oplossen met een DISTINCT erbij, maar dan krijg je een heel andere volgorde. Nu heb ik het op de volgende manier opgelost, maar er moet toch een betere manier zijn?
Zoals je ziet gaat hij nu steeds al die plaatjes langs en checkt dan of het album niet gelijk is aan het vorige album. Dit gaat door totdat de $i variabele 9 heeft bereikt. Niet echt de meest ideale oplossing dacht ik zo, maar GROUP BY en DISTINCT leveren heel andere lijsten op. Heeft iemand een idee hoe dit op te lossen is?
(btw, sorry voor de nogal onduidelijk titel, maar ik heb geen idee hoe ik dit probleempje moet noemen...)
Dit wilde ik oplossen met een DISTINCT erbij, maar dan krijg je een heel andere volgorde. Nu heb ik het op de volgende manier opgelost, maar er moet toch een betere manier zijn?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $cat == "" ? $filter = "" : $filter = "AND B.category = $cat"; $i = 0; $sql = mysql_query("SELECT B.id, B.name, B.album, C.abbreviation FROM vg_files A, vg_games B, vg_categories C WHERE B.album = A.album $filter AND C.id = B.category AND A.type = 'video' ORDER BY A.id DESC", $dbh); while ($row = mysql_fetch_array($sql) AND $i < 9) { if ($row[album] != $temp_album) { echo' <a href="/'. $row[abbreviation] .'/videos/'. $row[id] .'/'. $row[name] .'/" class="rightgame">'. $row[name] .'</a> '; $temp_album = $row[album]; $i++; } } |
Zoals je ziet gaat hij nu steeds al die plaatjes langs en checkt dan of het album niet gelijk is aan het vorige album. Dit gaat door totdat de $i variabele 9 heeft bereikt. Niet echt de meest ideale oplossing dacht ik zo, maar GROUP BY en DISTINCT leveren heel andere lijsten op. Heeft iemand een idee hoe dit op te lossen is?
(btw, sorry voor de nogal onduidelijk titel, maar ik heb geen idee hoe ik dit probleempje moet noemen...)