login  Naam:   Wachtwoord: 
Registreer je!
 Forum

willekeurige rij selecteren

Offline spaceflippie - 11/07/2008 21:30 (laatste wijziging 11/07/2008 21:31)
Avatar van spaceflippieNieuw lid Ik zit met een probleem. Ik heb foto's die zijn onderverdeeld in verschillende albums. Ik heb dus in mijn tabel foto's een kolom album die bepaald tot welk album een bepaalde foto hoort. Nu zou ik graag uit die tabel voor elk album een willekeurige rij (van dat album!) selecteren. Ik weet echter niet hoe ik dit moet doen?

Het einddoel is dat ik een pagina krijg met de naam van alle albums met bij elke naam een willekeurige foto van dat album. Ik hoop dat ik het niet te moeilijk heb gevraagd want het is niet zo makkelijk uit te leggen.  

Alvast bedankt!

1 antwoord

Gesponsorde links
Offline JBke - 12/07/2008 09:05 (laatste wijziging 12/07/2008 09:31)
Avatar van JBke PHP gevorderde Als je alles in 1 tabel hebt staan en geen gesatndariseerde tabellen gebruikt zou ik dat al als eerste veranderen.

Ik zou een tabel Albums maken met GUID's als ID en idem voor de eventuele categorieen die je kan hebben per Album of algemeen.

Je hebt dan een tabel bvb tblalbum met een veld id = guid en name = album naam.

Dan kan je simpel in je tabel met afbeeldingen de album GUID bijhouden in een veld album_id.

Mits dat je niet 2 keer dezelfde album kan hebben kan je dan eerst een query doen met result = SELECT * FROM tblalbum.

Daarna draai je een query met foreach result as album haal je telkens een rij op uit de afbeeldingen tabel. SELECT * FROM tblafbeelding WHERE album = album['name'] ORDER BY RAND() LIMIT 1.

Dat is de eenvoudigste manier.

Als je echt alles in 1 tabel hebt staan moet je al zeker zijn dat je de album id in de colom steeds dezelfde noemt en dan kan je met 1 query ophalen bvb.

SELECT DISTINCT albumname FROM tblafbeelding.

Dan krijg je al de unieke waardes terug uit de kolom album maar ben niet zeker dat je dan niet steeds dezelfde gaat krijgen. Je kan de DISTINCT proberen te koppelen aan RAND() maar ik raad genormaliseerde tabellen aan.

Als je dan later een album wenst te wijzigen kan je eenvoudig de naam in de tblalbum wijzigen terwijl de guid als id dezelfde blijft. Dan blijft historisch gezien alles ook correct als je niet enkel de id maar ook de naam van de album opslaagd in je tabel met afbeeldingen en kan je een check doen of de naam nog overeenkomt met de huidige naam in de tblalbum. Indien niet kan je bvb vragen of deze geupdate moet worden.

Ik hoop^dat je de uitleg een beetje snapt. Ik werk sinds kort met ORM Doctrine e
n daarvoor werkte ik met Zend_DB en dus PDO. Is ligtjes anders. daar werk je met $obj->findDenepndentRowset() of met findParentRow() en leg je je relaties in Models.

Grtz.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.181s