21. september 2007 - 14:16
Der er
2 kommentarer og
1 løsning
Udskrive første ID fra database?
Goddag
Jeg sidder med et lille problem jeg ikke helt kan få til at hænge sammen.
Det ser således ud:
Jeg har en tabel der hedder "profiler" og en der hedder "billeder".
- Profiler
id
navn
alder
- Billeder
id
profil
billede
F.eks. så har profil #1 5 billeder.
Så der bliver indsat følgende i billeder:"
id: 1
profil: 22
billede: billede1.jpg
id:2
profil: 22
billede: billede2.jpg
Så jeg vil lave en liste, hvor den udskriver alle profiler, men kun med 1 billede fra hver profil og hvis der ikke ikke er noget billede, så viser den "none.jpg".
Er der nogen der kan yde noget assitance med denne lille forhindring?
21. september 2007 - 14:24
#1
Det nemmeste er nok at lave GROUP BY på dit profil-id:
SELECT
profiler.id,
profiler.navn,
profiler.alder,
IFNULL(billeder.billede, 'none.jpg')
FROM
profiler LEFT JOIN
billeder
ON profiler.id = billeder.profil
GROUP BY
profiler.id
Så kan du direkte vise billedet. At ovenstående er tilladt skyldes at MySQL er lidt speciel med hensyn til ikke-grupperede værdier i select-listen selv om der bruges en grouping - den vil faktisk vise et tilfældigt af disse X billeder som hver profil har, hvilket måske er det først indsatte, men sagtens kan være et andet.
Vil du sikre dig, at der altid bliver vist samme billeder, så skal dette lige ændres en anelse :)
--
Morten Barklund