Avatar billede minimadsens Nybegynder
06. november 2007 - 21:20 Der er 14 kommentarer og
1 løsning

Skifte bg farve for hver anden row man henter fra sin DB

Hvordan gør jeg sådan at f.eks hvis jeg har en tagwall og vil lave sådan at hver anden række jeg henter ind fra databasen skal skifte BG farve? :)
Avatar billede nemlig Professor
06. november 2007 - 21:29 #1
Her er et eksempel, hvis jeg har forstået dit spørgsmål korrekt.

$gray = true;
while($row = mysql_fetch_array($res)) {
    if($gray) {
        print "<tr bgcolor='#EEEEEE'>\n";
    } else {
        print "<tr>\n";
    }
    $gray = !$gray;
print "<td>".$row["emne"]."</td>";
}
Avatar billede minimadsens Nybegynder
06. november 2007 - 21:34 #2
altså kan ikke helt se på det script om det er det jeg søger, men tror det ikke. :S
sry.

Vil lave sådan at hvis den nu henter f.eks. 5 rows fra min DB, så skal den første have en mørkeblå baggrund, og nr. 2 skal have en lyseblå bg. og så skal nr. 3 have en mørkeblå bg igen, osv. osv. :) hvis du/i forstår? :)
Avatar billede nemlig Professor
06. november 2007 - 21:40 #3
Jo, men du skal vel printe dine rows, hvilket jeg i ovennævnte eksempel gør med <table>-funktionen. Hvordan vil du liste dem???
Avatar billede minimadsens Nybegynder
06. november 2007 - 21:43 #4
så var det bare mig der ikke helt forstod dit eksempel tror jeg.. :P

hehe. :)
Men så skal jeg lave en row til databasen der hedder "gray", så jeg ikke? :)
Avatar billede nemlig Professor
06. november 2007 - 21:47 #5
$gray er bare en variabel, som skiftevis er true. Det er bare fordi jeg bruger grå som baggrundsfarve.
Du kan bare sætte andre farvekoder:
print "<tr>\n";
ændres til
print "<tr bgcolor='#DDDDDD'>\n";
eller hvilken farve du nu vil have.
Avatar billede nemlig Professor
06. november 2007 - 21:49 #6
Du kan også gøre det sådan her:

$count = 1;
while($row = mysql_fetch_array($res))
  {
    if($count == 1)
      {
          $color = '#eeeeee';
            $count = 0;
        }
        else
        {
            $color = '#dddddd';
            $count = 1;
        }
echo "<tr style='height: 20px; background-color: ".$color.";'>
}
Avatar billede minimadsens Nybegynder
06. november 2007 - 22:37 #7
forstår ikke helt hvorfor den gør det, men tror at jeg forstår det når jeg sætter det op, og ser dets funktion. :)

Lyder mærkeligt når jeg jo godt ved hvad det gør. :)

Men for at se når jeg kommer hjem, og tester det. :) (er hos en ven)
Avatar billede nemlig Professor
06. november 2007 - 22:46 #8
Ellers må du lige komme med noget af din kode - så kan vi sammen lave noget kode, der virker.
Koden ovenfor er jo ikke fuldstændig, men jeg kan da godt lave et eksempel, hvor du bare skal rette feltnavne.
Avatar billede minimadsens Nybegynder
06. november 2007 - 23:14 #9
Her er min kode jeg gerne skal have ændret til at vise en anden bg farve pr 2 row den viser. :)

<p style="padding-left: 5">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="2"><hr border="1" id="hr"></td>
</tr>
<?
  $query = "SELECT besked, navn, tid, level FROM tagwall order by id DESC LIMIT 20";
  $result = mysql_query($query);
  while($r=mysql_fetch_array($result))   
  {
$str = $r[besked];
$str = nl2br($str);

include("koder_tagwall.php");
$text = $str;

include("smiley.php");

$newphrase = str_replace($healthy, $yummy, $phrase);
  ?>
<tr>
<td width="130" valign="top"><? echo "<span id=red><a target=_blank href=../brugerprofil.php?user=$r[navn]&page=1><u>$r[navn]</u></a></span>"; ?><br><? echo "$r[tid]"; ?><br><? echo"$r[level]"; ?></td><td width="252" valign="top"><p style="padding-left: 5"><? echo strip_tags($newphrase, $koder);  ?></p></td>
</tr>
<tr>
<td colspan="2"><hr border="1" id="hr"></td>
</tr>
<?
  }
?>
</table></p>
Avatar billede minimadsens Nybegynder
06. november 2007 - 23:16 #10
det er hele min kode jeg har sat ind, men er sikker på at et geni som dig ved et øjekast sikkert forstår mere om det end jeg gør. :P

selvom jeg selv har lavet det. (plus fået hjælp herinde fra til noget af det. :P)
Avatar billede minimadsens Nybegynder
06. november 2007 - 23:28 #11
Jeg fik det sat op af mig selv. :)

Mange tusinde tak!! :)

Kom med et svar, og få point. :)
Avatar billede nemlig Professor
06. november 2007 - 23:31 #12
<p style="padding-left: 5">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="2"><hr border="1" id="hr"></td>
</tr>
<?
  $query = "SELECT besked, navn, tid, level FROM tagwall order by id DESC LIMIT 20";
  $result = mysql_query($query);
$count = 1;
  while($r=mysql_fetch_array($result))   
  {
if($count == 1)
      {
          $color = '#eeeeee';
            $count = 0;
        }
        else
        {
            $color = '#dddddd';
            $count = 1;
        }

$str = $r[besked];
$str = nl2br($str);

include("koder_tagwall.php");
$text = $str;

include("smiley.php");

$newphrase = str_replace($healthy, $yummy, $phrase);

echo "<tr style='height: 20px; background-color: ".$color.";'>";
?>
<td width="130" valign="top"><? echo "<span id=red><a target=_blank href=../brugerprofil.php?user=$r[navn]&page=1><u>$r[navn]</u></a></span>"; ?><br><? echo "$r[tid]"; ?><br><? echo"$r[level]"; ?></td><td width="252" valign="top"><p style="padding-left: 5"><? echo strip_tags($newphrase, $koder);  ?></p></td>
</tr>
<tr>
<td colspan="2"><hr border="1" id="hr"></td>
</tr>
<?
  }
?>
</table></p>
Avatar billede nemlig Professor
06. november 2007 - 23:34 #13
Hov - havde ikke set, at du havde fået det til at virke.
Avatar billede minimadsens Nybegynder
06. november 2007 - 23:36 #14
Det er fint nok, for kunne lige kigge det igennem.. :)

Det er altid rart, plus at folk i fremtiden kan se hvad de skal lave. :)
Avatar billede styrk Nybegynder
07. november 2007 - 06:10 #15
while(...)
{
$bgcolor = ($bgcolor == "#F1F1F1" ? "#F0F0F0" : "#F1F1F1");

echo $bgcolor;
}
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