webForumDet fria alternativet

Fotoalbum - Hur delar man upp en MySQL query?

PHP

4 svar · 338 visningar · startad av nighteye

Medlem sedan sep. 200260 inlägg
Frågan#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!

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