21. september 2007 - 14:16Der 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?
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 :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.