Avatar billede ohmish Nybegynder
22. januar 2010 - 00:42 Der er 5 kommentarer og
1 løsning

Liste med dynamisk indhold, to kolonner

Hej

Jeg skal vise en liste med php og mysql, som ser nogenlunde sådan her ud: http://peecee.dk/upload/view/219460
Dvs. to kolonner, og bestå af "celler" med en masse afsnit med overskrift og noget tekst under.
Indholdet og antallet af poster varierer meget.

Så jeg søger en måde at opdele mysql resultatet i to, og så udspytte de to kolonner for sig.

Altså dividere @mysql_num_rows() resultatet med to, og hvis der er f.eks 15 ialt, skal den første være 8 og den anden være 7.

Hvordan gør man det?


<?php

echo '<div id="liste">';

$dbget = @mysql_query("SELECT * FROM tabel");

    while ($arrdb = @mysql_fetch_array($dbget)) {

        echo '<div class="listebox">';

        echo '<h2>'.$arrdb['overskrift'].'</h2>';
        echo '<p>'.$arrdb['tekst'].'</p>';

        echo '</div>';

    }

echo '</div>';

?>
Avatar billede ohmish Nybegynder
22. januar 2010 - 01:02 #1
Det jeg vil opnå minder jo meget om "pagination", så måske logikken kan tages derfra. Det kigger jeg lige på ;)
Avatar billede ohmish Nybegynder
22. januar 2010 - 04:07 #2
Sådan


<?php

echo '<div class="liste">';

$dbget = @mysql_query("SELECT * FROM tabel");
$dbcount = @mysql_num_rows($dbget);

$i = 0;
$sw = 0;

    while ($arrdb = @mysql_fetch_array($dbget)) {
   
        if ($sw == 0 && $i > ceil($dbcount/2)-1) {
        echo '</div>
        <div class="liste">';
        $sw = 1;
        }

        echo '<div class="listebox">';

        echo '<h2>'.$arrdb['overskrift'].'</h2>';
        echo '<p>'.$arrdb['tekst'].'</p>';

        echo '</div>';

    }

echo '</div>';

?>
22. januar 2010 - 10:29 #3
Jamen virker det nu?  Meningen synes at vaere at naar du har echoet cirka halvdelen af posterne saa afslutter du <div class="liste"> og starter en ny.  Men jeg kan ikke se at du taeller antallet af poster.  Du starter med $i=0 og naar $i er stor nok skifter du <div>.  Men du foroeber ikke $i.  Indsaet $i++ for eksempel saaledes:  echo '<div class="listebox">';

        echo '<h2>'.$arrdb['overskrift'].'</h2>';
        echo '<p>'.$arrdb['tekst'].'</p>';
        echo '</div>';
        $i++

Ikke testet fordi jeg ikke har resten af din kode.
Avatar billede ohmish Nybegynder
22. januar 2010 - 16:09 #4
Ja det virker. Det var bare for at skrive koden. Og så glemte jeg i farten $i++ nederst. ;)
22. januar 2010 - 16:34 #5
Jeg taenkte nok at du skulle have tilfoejet $i++ for at koden, saadan som du havde gengivet den ville virke.

Nu hvor spoergsmaalet er besvaret (af dig selv) gider du saa lukke det (ved at acceptere dit eget svar) for god ordens skyld og saa det ikke laengere staar som aabent i min liste af indlaeg.
Avatar billede ohmish Nybegynder
22. januar 2010 - 16:45 #6
Kunne ikke acceptere svaret før, nu kan jeg. Således, nu skal du ikke døje med den besværlighed. ;)
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