Om de beurt andere div in loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cedric

Cedric

23/08/2007 09:20:00
Quote Anchor link
Hey,

Ik heb dus een radio/tv systeem gebouwd en nu wil de klant dit ook in zijn layout hebben. De layout is zo dat de kleur per lijn afwisselend is. Dus ik heb 2 divs, id v1, en id v2. Nu heb ik een while loopje om alle records eruit te halen. Maar nu kun je het al raden. Het moet dus ongeveer zo zijn.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<div id="v1">record</div>
<div id="v2">record</div>
<div id="v1">record</div>
<div id="v2">record</div>


Dit is mijn while loopje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while($row = mysql_fetch_assoc($result))
    {

        echo 'div met id 1 of 2<a href="show_radiochannel.php?id='.$row['id'].'">'.$row['name'].'</a>slashdiv<br />';
    }

?>


Heeft iemand een idee hoe ik dit zou kunnen doen zodat om de beurt idv1 of v2 meegegeven wordt?

Alvast bedankt
 
PHP hulp

PHP hulp

25/04/2024 21:55:08
 
Robert Deiman

Robert Deiman

23/08/2007 09:36:00
Quote Anchor link
Simpel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$teller
= 1;
while($row = mysql_fetch_assoc($result))
    {

        if($teller % 2 == 0){
            $div = 'v2';
            }

         else{
            $div = 'v1';
            }

echo '<div id="'.$div.'"><a href="show_radiochannel.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
    $teller++;
    }

?>
 
Cedric

Cedric

23/08/2007 09:38:00
Quote Anchor link
Aan zoiets had ik ook al gedacht, maar waar staat die % 2 voor? Bedankt alleszins !
 
Robert Deiman

Robert Deiman

23/08/2007 09:50:00
Quote Anchor link
$teller % 2 geeft het restgetal terug als je de teller door 2 deelt. Bijvoorbeeld bij 5 krijg je restgetal = 1, is 2x deelbaar door 2 (2x2=4 en dan blijft er 1 over)
Daarvoor staat restgetal.

Wat ook nog had gekunt is bovenaan in de while met 2 if-jes en else-jes controleren of de teller 1 of 2 was, en afhankelijk daarvan ook meteen de teller instellen op de waarde voor de volgende lus. Dat zou er zo uit hebben gezien, maar bovenstaande oplossing is korter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$teller
= 1;
while($row = mysql_fetch_assoc($result))
    {

        if($teller == 2){
            $div = 'v2';
            $teller = 1;
            }

         else{
            $div = 'v1';
            $teller = 2;
            }

echo '<div id="'.$div.'"><a href="show_radiochannel.php?id='.$row['id'].'">'.$row['name'].'</a></div>';
    }

?>
 
Cedric

Cedric

23/08/2007 10:07:00
Quote Anchor link
Bedankt voor de goeie uitleg :)
 
Jelmer -

Jelmer -

23/08/2007 10:44:00
Quote Anchor link
De onderstaande oplossing is nog wat korter, maar misschien wat lastiger te begrijpen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$i
= 0;
while($row = mysql_fetch_assoc($result)) {
        echo '<div id="' . ($i++ % 2 ? 'v1' : 'v2') . '"><a href="show_radiochannel.php?id=' . $row['id'] . '">' . $row['name'] . '</a></div>';
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.