ik heb een database met de namen van allerlei foto's daarin.
bijvoorbeeld vakantie01.jpg, vakantie11.jpg, vakantie14.jpg.
De nummering is niet erg logisch, het gaat dus niet gewoon van 01 naar 14 maar slaat ook een aantal getallen over.
Nu wil ik de hoogste waarde, dus vakantie14.jpg selecteren.
Is daar een manier voor?
Tja, dat wordt waarschijnlijk vrij lastig omdat sorteren op zo'n bestandsnaam niet echt lekker gaat aangezien je te maken hebt strings. Aflopend sorteren zal er dus als volgt uit zien:

vakantie3.jpg
vakantie2.jpg
vakantie14.jpg
vakantie1.jpg

Kortom, de 'hoogste' waarde eruit vissen wordt lastig aangezien je niet met integers te maken hebt.

Ik weet niet hoe je datamodel eruit ziet, maar je zou bijvoorbeeld ook kunnen kijken naar het id dat een foto gekregen heeft.

Met een GLOB() alles in een array zetten, splitten en vervolgens de MAX() gebruiken om het hoogste item eruit te halen.
Het lijkt mij het handigste om met een regular expression het getal eruit te plukken en dan de MAX() toe te passen.

In pgSQL heb je daar mooie functies voor (link), met MySQL zou ik het niet weten.
Als je niet

vakantie3.jpg
vakantie2.jpg
vakantie14.jpg
vakantie1.jpg

in de database hebt staan maar wel dit (met de nul ervoor)

vakantie03.jpg
vakantie02.jpg
vakantie14.jpg
vakantie01.jpg

dan kan je daar gewoon op sorteren.
Als je het op alfabet sorteert, gebeurt dit toch automatish?
Als je met een upload script werkt, zal ik zeker voor de manier van Dennis gaan.
je moet gewoon, order by nummer ASC LIMIT 0,1
dan pakt hij gewoon de eerste de beste foto, maar niet degene met de hoogste waarde.
het gaat inderdaad om een upload script.
ik wil weten wat het hoogste nummer is voor wanneer ik meer foto's bij een bepaald evenement ga uploaden. zodat hij bij dat nummer begint met nummeren en dus niet twee fotos hetzelfde nummer geeft.
Dennis, ik zou het heel anders aanpakken. De bestandsnaam die een foto heeft maakt in principe helemaal niets uit!

Je neemt een aparte tabel waarin je de evenementen opslaat en vervolgens koppel je die aan de tabel met foto's:

evenementen
----------------
id
evenement

fotos
------
id
bestandsnaam
evenement_id

Op die manier kun je veel makkelijker onderscheid maken tussen verschillende evenementen en heb je dit hele probleem niet ;)

Reageren