Avatar billede andreas13_fam Nybegynder
06. januar 2009 - 19:19 Der er 8 kommentarer og
1 løsning

Hver anden gang while køre, skriv…

Hver anden gang while køre, skriv…

Mit problem er meget enkelt, jeg har en while, (jeg håber den er kodet rigtigt :D) som kobler op til en MySQL database. Jeg vil gerne have echo '<tr class="oversigt-et">'; til skriftevis skrive
echo '<tr class="oversigt-et">';
I næste runde
echo '<tr class="oversigt-to">';
I næste runde
echo '<tr class="oversigt-et">';
og sådan forsætter det (et,to,et,to,et,to,et,to)
Er der nogen der har en ide til hvordan det kan gøres, det skal lige siges at i den grad er nybegynder (startede for et par uger siden :D)
PHP delen ses her…
<?php
include "/rod/mappe/opret-forbindelse.php"; //opretter forbindelse

$query = mysql_query("SELECT * FROM kogebogen ORDER BY navn"); //Sætter forsprøgsel
while($row = mysql_fetch_assoc($query)) //Lav en while der kører alle rækker igennem
{
  echo '<tr class="oversigt-et">'; //Den første hedder "et" den næste skal hedde "to", den næste skal hedde "et"
    echo '<td>'. $row['id'] .'</td>';
    echo '<td>'. $row['hm'] .'</td>';
    echo '<td><a href="fil.php?Opskrift=' . $row['id'] . '">'. $row['navn'] .'</a></td>';
    echo '<td>'. $row['raiding'] .'</td>';
    echo '<td>'. $row['stemmer'] .'</td>';
    echo '<td>'. $row['oprindelse'] .'</td>';
    echo '<td>'. $row['dato'] .'</td>';
  echo '</tr>';
}
?>
Avatar billede hmortensen Nybegynder
06. januar 2009 - 19:26 #1
Du kan lave en variabel uden for løkken, og skifte værdien i løkken, i et tjek.

$rel = true;

while (...)
{
  echo '<tr class="oversigt-' . (($rel = !$rel) ? 'et' : 'to') . '">';
}
Avatar billede avminarm Juniormester
06. januar 2009 - 19:38 #2
eller du kan bruge modolus ala det her - den synes jeg er lidt nemmere at forstå, men hmmortensens er kortere:

$query = mysql_query("SELECT * FROM kogebogen ORDER BY navn"); //Sætter forsprøgsel
$i = 1;
while($row = mysql_fetch_assoc($query)) //Lav en while der kører alle rækker igennem
{
  $class = ($i % 2 ? "oversigt-et" : "oversigt-to"); //tager modulus af $i
  echo '<tr class="'.$class.'">'; //Den første hedder "et" den næste skal hedde "to", den næste skal hedde "et"
    echo '<td>'. $row['id'] .'</td>';
    echo '<td>'. $row['hm'] .'</td>';
    echo '<td><a href="fil.php?Opskrift=' . $row['id'] . '">'. $row['navn'] .'</a></td>';
    echo '<td>'. $row['raiding'] .'</td>';
    echo '<td>'. $row['stemmer'] .'</td>';
    echo '<td>'. $row['oprindelse'] .'</td>';
    echo '<td>'. $row['dato'] .'</td>';
  echo '</tr>';
  $i++; //lægge en til $i
}
Avatar billede majbom Novice
06. januar 2009 - 19:43 #3
jeg bruger 0 og 1 i stedet for 1 og 2 og så følgende:

$oversigt = 0;
$query = mysql_query("SELECT * FROM kogebogen ORDER BY navn"); //Sætter forsprøgsel
while($row = mysql_fetch_assoc($query)) //Lav en while der kører alle rækker igennem
{
  echo '<tr class=oversigt-"'.$oversigt.'">'; //Den første hedder "et" den næste skal hedde "to", den næste skal hedde "et"
    echo '<td>'. $row['id'] .'</td>';
    echo '<td>'. $row['hm'] .'</td>';
    echo '<td><a href="fil.php?Opskrift=' . $row['id'] . '">'. $row['navn'] .'</a></td>';
    echo '<td>'. $row['raiding'] .'</td>';
    echo '<td>'. $row['stemmer'] .'</td>';
    echo '<td>'. $row['oprindelse'] .'</td>';
    echo '<td>'. $row['dato'] .'</td>';
  echo '</tr>';
  $oversigt = abs($oversigt-1);
}
Avatar billede majbom Novice
06. januar 2009 - 19:43 #4
der skulle have stået:

jeg bruger 0 og 1 i stedet for "et" og "to" og så følgende:
Avatar billede andreas13_fam Nybegynder
06. januar 2009 - 20:02 #5
Det var der mange måder at gøre på :D, og de første 2 virker, jeg ved ikke med den 3..

Hvis man kikker på tidspunktet det er indsat så må det være hmortensen der løber med sejerne. Det er hvis også den som jeg _tro_ at jeg forstår :)
Avatar billede hmortensen Nybegynder
06. januar 2009 - 20:09 #6
Og et svar :)
Avatar billede jensgram Nybegynder
06. januar 2009 - 20:16 #7
$oversigt = abs($oversigt-1);

$oversigt = 1 - $oversigt;
Avatar billede majbom Novice
06. januar 2009 - 20:46 #8
-> jens - den havde jeg sq ikke tænkt på, men selvfølgelig :) - tak!
Avatar billede jensgram Nybegynder
06. januar 2009 - 20:52 #9
;)
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