webForumDet fria alternativet

Horisontell listning från MySQL

PHP

4 svar · 452 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#1

Funderar lite över hur jag på bästa sätt ska lösa en horisontell listning med bland annat bilder.

Som det ser ut nu så sparar jag filnamnet på bilderna i databasen och använder det för att visa bilden. Att göra en vertikal listning är inga problem.. det är mer eller mindre bara att tuta och köra med en table osv...

Nu vill jag dock göra en horisontal listning där 4-5 bilder läggs på rad.. ungefär så som koden nedan.

<table>
<tr>
<td>bild1</td><td>Bild2</td><td>Bild3</td><td>bild4</td>
</tr>
<tr>
<td>bild1</td><td>Bild2</td><td>Bild3</td><td>bild4</td>
</tr>
<tr>
<td>bild1</td><td>Bild2</td><td>Bild3</td><td>bild4</td>
</tr>
</table>

Hade det bara varit en rad så hade man bara kunna köra en limit, men nu ska det finnas flera rader under varandra, och dem ska sorteras efter id.

Det ska vara lite dynamiskt också eftersom jag inte kan sätta ett statiskt värde på hur många rader... det är antal bilder som finns som bestämmer antalet rader. Det ända statiska värdet är ju hur många bilder per rad som ska visas.

Några förslag?

Medlem sedan juni 20006 031 inlägg
#2

Du loopar ut som vanligt fast du lägger in en räknare också som räknar hur många bilder du lägger in i raden.
något sånt här borde funka.
Du får nog säkert modifiera koden lite, är säkert något småfel i den då jag precis vaknat. ;)

i = 1;
while(....) {
    // ny rad?
    if(i == 1) {  
        echo "<tr>\n";
    }
    // skriv ut bilden
   echo "<td>$bild</td>\n";
   // om raden är slut
   if(i == 4) {
       echo "</tr>\n";
       i = 1;
   } else {
       i++;
   }
}

// Fyll ut med tomma celler
if(i != 1) {
    for(a = i; a < 4; a++) {
        echo "<td>&nbsp;</td>\n";
    }
    echo "</tr>\n";
}
Medlem sedan aug. 2004903 inlägg
#3

fungerar underbart.. men jag förstår inte varför jag skulle ha den sista kodbiten av det du skickade.. alltså det som står under "//Fyll ut med tomma celler"

Medlem sedan juni 20006 031 inlägg
#4

Låt oss säga att du har 10 bilder i databasen o loopar ut dom med 4 i varje rad.
Då blir det ju 2 bilder i sista raden och då behöver du lägga till två tomma celler och det är det den kodraden gör.

Medlem sedan aug. 2004903 inlägg
#5

ok, då förstår jag. Jag har dock limit på antalet bilder som loopas ut.. men komemr nog behöva den senare på en sida där alla bilder kommer loopas ut i en paging

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)