14. august 2005 - 10:39 Der er 6 kommentarer og
1 løsning

while loop og tables

Hej,
Jeg hiver nogle billede links ud af en database. I øjeblikket står bliver de bare skrevet ud med et <br> immellem sig så de står på hver deres linie.
Jeg vil dog gerne have at de står to på hver linie hele vejen ned.

Ved godt det skal være noget med $count og hver anden skal lave en table start og den anden skal lave en table slut, men hvordan gør jeg det?

Her er mit forsøg:

$count=1

while ($row = mysql_fetch_array($result)) {

while($count= ){ #ved det sgu ikke!

echo"<img src=\"".$row[billede]."\">";
$count++;
}

}

Mange tak for hjælpen!
Avatar billede nielle Nybegynder
14. august 2005 - 10:42 #1
Den helt simple:

$count = 1;

while ($row = mysql_fetch_array($result))
{
    if ($count % 2 == 0) echo "<br>";   

    echo "<img src=\"" . $row[billede] . "\"> ";

    $count++;
}
Avatar billede nielle Nybegynder
14. august 2005 - 10:45 #2
... og den lidt mere avancerede med table:

echo "<table>";
echo "<tr>"

$count = 0;
while ($row = mysql_fetch_array($result))
{
    if ($count % 2 == 0 && $count != 0)
    {
        echo "</tr>";
        echo "<tr>";
    ]

    echo "<td><img src=\"" . $row[billede] . "\"></td>";

    $count++;
}

if ($count % 2 != 0) echo "<td>&nbsp;</td>";

echo "</table>";
Avatar billede olebole Juniormester
14. august 2005 - 12:33 #3
<ole>

Njaaahhh ... den er nu ikke så avanceret ... i hvert fald ikke effektiv  :)

$str = "";
$str .= "<table>";
$str .= "<tr>"

$count = 0;
while ($row = mysql_fetch_assoc($result))
{
    if ($count % 2 == 0 && $count != 0)
    {
        $str .= "</tr>";
        $str .= "<tr>";
    }

    $str .= "<td><img src=\"" . $row["billede"] . "\"></td>";

    $count++;
}

if ($count % 2 != 0) $str .= "<td>&nbsp;</td>";

$str .= "</table>";

echo $str;

--------------------------------

At skrive til en streng-buffer, der skrives ud én gang, forbedrer somregel performance med flere hundrede gange (ikke kun flere hundrede procent, men flere hundrede _gange_)!  ;o)

Husk også altid at bruge gåseøjne ved array-kald - med mindre, det er nestet i en streng. Altså: ikke $row[billede] ...... men $row["billede"]

/mvh
</bole>
14. august 2005 - 12:39 #4
Begge jeres svar virkede, men siden olebole's yder performancen vil jeg bruge hans svar.
Dog kom nielle først så vil I begge være venlige at lægge et svar?
Mange tak for hjælpen!
Avatar billede nielle Nybegynder
14. august 2005 - 19:25 #5
PHP har en nifty lille feature kaldet output buffering. Den løser (de fleste)problemer med I/O, og samtidigt har man det bonus at koden bliver simpelere:

http://dk2.php.net/ob_start
Avatar billede nielle Nybegynder
14. august 2005 - 19:26 #6
... og et svar :^)
28. august 2005 - 16:23 #7
Mange tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester