Avatar billede bigtime Nybegynder
19. februar 2009 - 09:38 Der er 3 kommentarer og
1 løsning

3 columns bare der ned af i rows

hvordan retter jeg den her til så den laver 3 columns og selfølig ikke skriver den samme side i de 3 columns.
og hvis der er flere sider i databasen så skal den bare forsætte der ned af til der ikke flere sider er i dben.
her er den kode jeg bruger nu der er blevet lidt lang efterhånden
<?PHP


$query = mysql_query("SELECT * FROM sider ORDER BY tilfoj_den DESC ") or die(mysql_error());
if(mysql_num_rows($query) > 0) {

$i = 0;

    while($v = mysql_fetch_object($query)) {
    $color = (($i%2) == 0 ? "#F3F3F3" : "#999");
    echo"<tr style=\"background-color: ".$color."\">\r\n";
    echo"<td valign=\"top\" height=\"20\"><a target='_blank' href='http://www.".$v->side."'>".$v->side."</a></td>\r\n";
    echo"<td height=\"20\"><a href=\"http://www.".$v->side."\" target=\"_blank\"><img border=\"0\" src=\"http://1move.dk/img/".$v->thumbs."\" /></a></td>\r\n";
echo"</tr>\r\n";
$i++;
    }}
?>
Avatar billede nicklasb Nybegynder
19. februar 2009 - 10:18 #1
En meget konceptuel kode (der sagtens kan optimeres!)

<?php

$arr = array(
        'Indhold af celle 1',
        'Indhold af celle 2',
        'Indhold af celle 3',
        'Indhold af celle 4',
        'Indhold af celle 5',
        'Indhold af celle 6',
        'Indhold af celle 7',
        'Indhold af celle 8',
        'Indhold af celle 9',
        'Indhold af celle 10',
        'Indhold af celle 11'
);

$cols = 3;
$colors = array('#f3f3f3', '#999999');

$i = 0;
$j = 0;
echo '<table>' . "\n\t" . '<tr>' . "\n";
foreach($arr as $value) {
    echo "\t\t" . '<td style="background-color: ' .
            $colors[$j%count($colors)] . ';">' .
            $value . '</td>' . "\n";
    if (++$i % $cols == 0 && $i < count($arr)) {
        $j++;
        echo "\t" . '</tr>' . "\n\t" . '<tr>' . "\n";
    }
}
while($i++%$cols > 0) {
    echo "\t\t" . '<td style="background-color: ' .
            $colors[$j%count($colors)] .
            ';">Tom celle</td>' . "\n";
}
echo '    </tr>' . "\n" . '</table>';

?>

Du skal have udskiftet foreach-løkken med din while-løkke og count($arr) med mysql_num_rows().
Avatar billede bigtime Nybegynder
19. februar 2009 - 11:40 #2
hmmm den skal selv skrive det ud fr databasen
altså hvis du mente jeg skulle skrive det i
$arr = array(
        'Indhold af celle 1',
        'Indhold af celle 2',
        'Indhold af celle 3',
        'Indhold af celle 4',
        'Indhold af celle 5',
        'Indhold af celle 6',
        'Indhold af celle 7',
        'Indhold af celle 8',
        'Indhold af celle 9',
        'Indhold af celle 10',
        'Indhold af celle 11'
);
Avatar billede nicklasb Nybegynder
19. februar 2009 - 11:47 #3
Næææ, det var bare for at simulere en datakilde. Du kan bare skifte arrayet ud med din datasætskilde, som jeg nævner det sidst i mit svar.
Avatar billede nicklasb Nybegynder
01. marts 2009 - 14:26 #4
Har du fået det til at virke?
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