Avatar billede majbom Novice
28. maj 2007 - 14:43 Der er 15 kommentarer og
1 løsning

hvis i er 0 skal i være 1 og omvendt

hejsa

mener at have set en smart måde at lave denne sætning:

if(i == 1){
  i = 0;
}else{
  i++;
}

det bruges i en while løkke til at skifte style på <td>'er så hver anden linje linje er ens-farvet. tror i forstår :)

pft
Avatar billede michael_stim Ekspert
28. maj 2007 - 14:46 #1
Modulus
%
Avatar billede w13 Novice
28. maj 2007 - 14:47 #2
Hvad med:
abs(i-1);
? :)
Mit kendskab til php er lille, men dette burde vel virke. Først trækker koden 1 fra i, og hvis tallet er under 0, konverteres det til et positivt tal.
Avatar billede michael_stim Ekspert
28. maj 2007 - 14:48 #3
$i=0;
if($i%2==0){
//tallet er lige
$i++;
}
Avatar billede morhan Novice
28. maj 2007 - 14:55 #4
$i = 0;

$i ^= 1; // flipper bit 0, så i skifter mellem 0 og 1
Avatar billede leif Seniormester
28. maj 2007 - 14:55 #5
Jeg bruger:
$colors[]='#FFFFFF';
$colors[]='#C0C0C0';
$c = 0;
while ($row = mysql_fetch_array($result))
{
$c=1-$c;
  print "<tr bgcolor=".$colors[$c].">";
  print "<td></td>";
  print "<td></td>";
  print "<tr>";
}
Avatar billede w13 Novice
28. maj 2007 - 15:01 #6
Min er så:
abs(i--);
Avatar billede majbom Novice
28. maj 2007 - 15:01 #7
well prøvede med:
$i = abs($i-1);
som virker efter hensigten.

-> leif - vil $c ikke altid være 0?
Avatar billede w13 Novice
28. maj 2007 - 15:08 #8
Så opretter jeg et svar! :)
Avatar billede roenving Novice
28. maj 2007 - 15:09 #9
Brug en boolean i stedet:

$i = false;

while ($row = mysql_fetch_array($result))
{
  print "<tr bgcolor=".($i?"#ffffff":"#c0c0c0").">";
  print "<td></td>";
  print "<td></td>";
  print "<tr>";
  $i = !$i;
}
Avatar billede leif Seniormester
28. maj 2007 - 15:12 #10
Nej, jeg sætter $c = 0 for at være sikker på at jeg starter med et 0
Avatar billede morhan Novice
28. maj 2007 - 15:13 #11
performancemæssigt vil boolean-udgaven være at foretrække
Avatar billede erikjacobsen Ekspert
28. maj 2007 - 15:15 #12
En smule simplere, hvis man skal skifte mellem 0 og 1

$i=0;
$i=1-$i;  // 1
$i=1-$i;  // 0
//osv
Avatar billede erikjacobsen Ekspert
28. maj 2007 - 15:16 #13
Nåh, den kom leif med. Jeg undrede mig over at den valgte, så jeg troede ikke efter at den "gode"  var der ... haha
Avatar billede majbom Novice
28. maj 2007 - 15:18 #14
-> leif - nååh ja, smart :)

-> morhan - havde helt overset din kommentar :S men den ser da osse kort ud :)
Avatar billede majbom Novice
28. maj 2007 - 15:19 #15
-> roenving - tror faktisk det var den jeg havde set...
Avatar billede webstuff Nybegynder
28. maj 2007 - 23:01 #16
Plejer at bruge modulus:

$color = ($i++ % 2) ? "white" : "black";
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