Fotoalbum - Hur delar man upp en MySQL query?

PHP

4 svar · 344 visningar · startad av nighteye

Medlem sedan sep. 200260 inlägg
Trådstart#1

Jag håller på att fixa en medlemssida där bilder på alla medlemar visas. Det ska vara 24 bilder på varje sida och 4 st på varje rad. Jag använder mig av en MySQL databas samt en paging funktion.

Problemet är att jag inte riktigt vet hur jag ska göra för att bara visa 4 stycken bilder på varje rad. Jag har bara lyckats att antingen visa alla 24 på en rad eller bara de fyra första, hur gör jag för att dela upp queryn på 6 rader (6x4 = 24 bilder). Jag har funderat på LIMIT, men vet ej hur jag ska få det att funka på ett bra sätt. En annan idé var att använda en FOR eller WHILE loop för queryn.

Hur ska jag lösa detta på smidigast sätt? Några idéer eller tankar? Gärna med kodexempel.

if (!($page = $HTTP_GET_VARS['page'])) $page = 0;
$limit = "24";
$query = mysql_db_query("databas", "SELECT * FROM members ORDER by id ASC LIMIT ".($page * $limit).",".$limit.";") or die(mysql_error());
Medlem sedan feb. 2003169 inlägg
#2

Det här borde fungera:

// denna kod kan innehålla fel! den här koden
//är bara till för att ge dig en knuff i rätt riktning!

$sakerPerRad = 4;

echo "<table>\n";

$col = 1;
while($row = mysql_fetch_array($result))
{
// starta raden
if(($col % $sakerPerRad) == 1)
echo "<tr>\n";

echo "<td><img src=\"blah.jpg\"></td>\n";

// stäng rad
if(($col % $sakerPerRad) == 0)
echo "</tr>\n";

$col++;
}

// fylla tomma rutor
while(($col % $sakerPerRad) != 0)
{
echo "<td>&nbsp;</td>\n";
if(($col % $sakerPerRad) == 0)
{
echo "</tr>\n";
break;
}

$col++;
}

echo "</table>\n";
Medlem sedan sep. 200260 inlägg
#3

Tackar, ska prova om jag får det att fungera.

Medlem sedan sep. 200260 inlägg
#4

Det funkade faktiskt efter lite pillande :-) Dock så ska koden

while(($col % $sakerPerRad) != 0)

ändras till

while(($col % $sakerPerRad) != 1)
Medlem sedan feb. 2003169 inlägg
#5

aj då... som sagt, den där koden var mest för att få dig på rätt spår, vilket verkar ha lyckats!

273 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)