Hallo, ik ben nu bezig met een soort boeking script. Nu wil ik dat alleen de weken worden weergegeven waar er boekingen gemaakt zijn.

dit heb ik met PHP vrij ver kunnen krijgen, Wat ik nu wil is:

Ik heb boekingen met een weeknummer. Ik wil het hoogste weeknummer
uit de database plukken, is dit week 8 dan word week 1 tot 8 weergegeven
ik heb al iets nagelezen met TOP maar dit werkt bij mij niet helemaal

voorbeeld:

Week -- wie
4 -- Kees
5 -- Piet
3 -- Peter
6 -- Jan-peter
9 -- Andre
2 -- Wouter

nu is 9 dus het hoogste getal dus moet de uitkomst 9 zijn. maar hoe krijg ik dit getal met de juiste query.

Alvast bedankt
hoe doe ik dit?

alvast bedankt
SELECT ... FROM ..... WHERE ..... ORDER BY week LIMIT 1
en je hebt week 9 te pakken.
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC")
Je moet dan wel een uniek veld hebben (genaamd "id") en die dus steeds doorteld (zie 1e post JB'tje).

Daarna kan je gewoon 1 rij ophalen.. en klaar is kees :D
santhe heeft toch een makkelijker

Jep ik heb een id veld, en die is auto increment en het is een sleutelveld.
SELECT * FROM tabel HAVING veld = MAX(veld)

Zo weet je meteen of je niet toevallig meerdere records hebt met hetzelfde (hoogste) weeknummer. Als je er toch maximaal 1 wil krijgen zet je er nog LIMIT 0, 1 achter. Eigenlijk wat je al probeerde maar TOP moet dus MAX zijn :)
@dutchcamel
een having is een where bij group by, dus dat is een foute query.
Aggregate functions kunnen niet in where, vandaar.

SELECT MAX(veldnaam) FROM tabelnaam LIMIT 1
Als het om boekingen gaat zou ik zeker geen weeknummer gebruiken. Rond de jaarwisseling kom je geheid in de problemen. Neem gewoon een DATE of een DATETIME. Daar kun je altijd nog een weeknummer uithalen als je wilt en je bent van het jaarwisselingsprobleem af.

Reageren