Reken som waarbij je altijd op 1 of 2 uitkomt ? (even of oneven)

Status
Niet open voor verdere reacties.

killer4all2

Gebruiker
Lid geworden
26 mei 2009
Berichten
449
Hoi!,

Momenteel ben ik bezig met het scripten van een website voor mijn eigen clan en ik heb wil alle posts uit een datbase echo'en in een rijtje. Wat ik er precies mee bedoel doet er op het moment natuurlijk niet toe :p.

Ik vroeg mij dus af of er een rekensom bestaat waarmee je altijd op 1 of 2 uitkomt, ik wil namelijk dingen echo'en in een while en automatisch de background per (li) laten verandere de kleur dus. En ik wou dit laten bepalen door het ID en heb dus een rekensom nodig die op 1 of 2 uitkomt zodat ik in de style sheet een class kan maken met 1 of 2 en die automatisch laten invullen.

Ik weet niet of jullie snappen wati k bedoel, maar als die online staat zou ik hem laten zien :) dus ik vroeg mij af of iemand een rekensom weet die altijd op 1 of 2 uitkomt :) (evengetallen komen bijv op 2 uit en oneven op 1)
 
Ehm ik heb dit laatst van Fraps (ofzo) gekregen en het werkt wel redelijk goed.

PHP:
<?php

$even = false;

while (je voorwaarde)
{
$even = !$even;

if($even) { $x=2 } 
else {$x=1}
}

//Nu wordt dus voor elke while je even false en vervolgens weer true en omgekeerd. omdat je er 1 en 2 uit wilt laten komen heb ik de if erin gezet. if($even) is gelijk aan if($even == true).

?>

Hoop dat het werkt!
 
Laatst bewerkt:
Wat Jorryt laat zien is een code die om de beurt een 1 en een 2 oplevert: 2,1,2,1,2,1,2,1,...

Ik zou hiervoor de functie rand gebruiken:
PHP:
rand(1,2);
 
ok bedankt ik ga het zo even proberen :), maar zou je misschien kunnen zeggen waarom deze query niet werkt ? :p

$query = "SELECT * FROM news WHERE category = serverupdates ORDER BY id DESC";

error:
Query failed
Error: Unknown column 'serverupdates' in 'where clause'

Ik wil dus alles opvragen uit de tabel new waar de category gelijk is aan serverupdates :)

gr rowan
 
IIG je dubbele quotes mist als het geen rekenbare getallen zijn, moeten op de volgende plekken quotes

where naamkolom = "iets"
tenzij je het volgende hebt
where naamkolom = 9
 
bedankt man weer wat geleerd vandaag :D

welke formule raad jij mij aan?
Is het zo als ik dit doe

while($row = mysqli_fetch_array($result))
{
echo "<tr class="hier getal"><td>{$row['title']}</td><td>{$row['category']}</td><td>{$row['author']}</td><td>{$row['date']}</td></tr>";
}

dat hij bij beide formules elke keer als hij echo'd omstebeurt een 1 / 2 oplevert

dus:

1
2
1
2
1
2
1
2

gr rowan :)
 
PHP:
<?php
$even = false;

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

$even = !$even;

if ($even) { $x=1 }
else {$x=2}

echo "<tr class="$x"><td>{$row['title']}</td><td>{$row['category']}</td><td>{$row['author']}</td><td>{$row['date']}</td></tr>";
}
?>

als het goed is moet hij het nu doen. Hij begint met 1 dan 2 dan 1 dan 2 enzovoort.
 
Kan mischien komen omdat het
mysql_fetch dinges is en niet
mysqli_fetch dinges

Maar dat weet ik niet zeker.
 
Haha dat is niet zo best.
Ik heb het uit mijn hoofd getypt er zitten dus mischien spelfouten in. Mischien is de If niet goed opgesteld ofzo. iets dergelijks.

probeer anders if ($even === true)
en anders toch even zonder die i in fatch_array
 
Wacht ik heb hem al!

achter de $x= 1 of 2 moet nog even een punt komma ( ; ) !
 
Super man ! :thumb: werkt perfect :D

while($row = mysqli_fetch_array($result))
{
$even = !$even;
if($even == true)
{
$x="een";
}
else
{
$x="twee";
}

echo "<tr class='$x'><td>{$row['title']}</td><td>{$row['category']}</td><td>{$row['author']}</td><td>{$row['date']}</td><td><a href='page.php?&page=newspost&postid={$row['id']}' class='post'>read</a></td></tr>";
}

BEDANKT ! :D

gr rowan
 
Als je op zoek bent naar iets dat twee dingen omstebeurt doet, dan kun je idd gebruiken wat hierboven staat.

Wat je ook nog kunt gebruiken is de Modulo reken operator, die uitrekent wat de rest is die overblijft na een deling. (Dus bijvoorbeeld 13 modulo 4 levert 1 op, want als je 13 deelt op 4 dan hou je 1 over, want 4*3 + 1 = 13)

Die schrijf je in PHP met het % teken, en kan soms erg handig zijn.

PHP:
for ( $i = 1; $i < 100; $i++ ) {
  if( $i % 2 == 0 ) {
    echo $i . ' is even<br />';
  }
  elseif( $i % 2 == 1 ) {
    echo $i . ' is oneven<br />';
  }
  else {
    // dit kan dus niet want als je door 2 deelt is de rest altijd 0 of 1
}
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan