Skal jeg bruge join eller lave flere sql-kald?

Tags:    databaser

Hej

Jeg er i gang med at lave en hjemmeside, der på forsiden viser en masse annoncer. For hver annonce bliver der vist 5-10 billeder. Annoncerne ligger i én table og billederne ligger i en anden.

Mit spørgsmål er derfor følgendene:
Hvis jeg skal liste alle annoncerne samt billederne, skal jeg så;

1) Hente alle annoncerne ud, og derefter for hver annonce hente de tilhørende billeder ud?

2) Skal jeg hente alle oplysninger ud vha. leftjoin, og derefter løbe dem igennem med en while i php og dermed vise et billede sålænge row'en er den samme annonce?

3) eller noget helt tredje?

På forhånd tak for hjælpen



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jeg har flere billeder til hver annonce. Så alle billederne har et annonceID.

Problemet er bare hvis jeg laver en join får jeg flere rækker for samme annonce, men med forskellige billeder. Men det er måske bare måden man gør det på?


Jeps. Join de to tabeller og "ORDER BY annonceID". Så laver du en løkke der gennemløber resultatsættet. Du laver en variabel, currentAnnonceID, som du inden løkken sætter til f.eks. -1 eller noget andet, som ikke findes i tabellen. Løkken konstruerer du som noget i stil med (pseudokode):

Fold kodeboks ind/udKode 


Eller noget i den stil. Altså dit eget forslag nr. 2



Indlæg senest redigeret d. 02.02.2009 11:14 af Bruger #132
Du skal gøre det i sql. Sammenføje de to tabeller. Jeg går ud fra at du har billedets id påsat annoncerne. Så skal du jo bare lave en select where sætning?



Jeg har flere billeder til hver annonce. Så alle billederne har et annonceID.

Problemet er bare hvis jeg laver en join får jeg flere rækker for samme annonce, men med forskellige billeder. Men det er måske bare måden man gør det på?



t