---
title: "Byta färg på varannan rad!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/96837-byta-färg-på-varannan-rad"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "harry_boy"
published: "2004-02-08T15:33:17.000Z"
updated: "2006-10-27T08:18:30.000Z"
replies: 17
views: 914
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/96837-byta-färg-på-varannan-rad"
---

# Byta färg på varannan rad!

## #1 — harry_boy, 2004-02-08T15:33Z

Jag vill byta färg på varannan rad samt att det skiftar färg när jag för musen över raden också!

Men jag vet inte hur jag skall implementera det

Här är delar ur koden:

```php
$sql = 'SELECT id, ordernr, tempo, kund, benamning, ritningsnr, antal, levtid, maskin, tim, starttid, maskinspec, anteckningar FROM strom_jobb ORDER BY starttid  ASC  LIMIT 0 , 30 ';
if ( !($result = mysql_query($sql)) ) {
die('Kan inte lista arbete i databasen! ' . mysql_error() . ' : ' . mysql_errno());

}

// Visa länk för att lägga till ett nytt arbete
// echo '<a href="'.$PHP_SELF.'?add=1">Nytt arbete</a><br>';

// Kontrollera antalet rader 
if ( mysql_num_rows($result) < 1) {
die('Kan inte hitta några arbete i databasen!');
}
?>

<!-- Visning av alla jobben på publika sidan -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="9"><img src="pics/top_left.gif" width="9" height="30" alt="" border="0"></td>
<td background="pics/top_bg.gif" width="100%"><img src="pics/rubrik_maskinplanering.gif" width="80" height="30" alt="" border="0"></td>
<td background="pics/top_bg.gif" align="right"><a href="#" onClick=javascript:window.print()><img src="pics/button_skrivut.gif" width="70" height="11" alt="" border="0"></a>&nbsp;<a href="planering.php"><img src="pics/button_listaalla.gif" width="70" height="11" alt="" border="0"></a></td>
<td width="9" align="right"><img src="pics/top_right.gif" width="9" height="30" alt="" border="0"></td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="3" style=" border: 1px solid #C2C5CA;">
  <tr bgcolor="#364B60" class="bold"> 
    <td align="right"> Ordernr&nbsp;</td>
    <td> Kund </td>
    <td> Benämning </td>
    <td align="right"> Ritningsnr </td>
    <td align="right"> Antal </td>
    <td align="center"> Lev.tid </td>
    <td> Maskin </td>
    <td align="right"> Tim </td>
    <td align="center"> Starttid </td>
    <td> Maskinspec </td>
    <td> Anteckning </td>
	<td></td>
  </tr>

<?php
// Hämta en rad i taget från databasen, fortsätt tills inga fler rader finns att hämta
while ( $row = mysql_fetch_array($result) ) {
$view_url = $PHP_SELF . '?view=' . $row['id']; // URL för att titta på ett visst arbete
$edit_url = $PHP_SELF . '?edit=' . $row['id']; // URL för att redigera ett visst arbete
$delete_url = $PHP_SELF . '?delete=' . $row['id']; // URL för att ta bort ett visst arbete
?>

<tr>
<td align=right><?php echo $row['ordernr'] ?>-0<?php echo $row['tempo'] ?></td>
<td><?php echo $row['kund'] ?></td>
<td><?php echo $row['benamning'] ?></td>
<td align="right"><?php echo $row['ritningsnr'] ?></td>
<td align="right"><?php echo $row['antal'] ?></td>
<td align="center"><?php echo $row['levtid'] ?></td>
<td><?php echo $row['maskin'] ?></td>
<td align="right"><?php echo $row['tim'] ?></td>
<td align="center"><?php echo $row['starttid'] ?></td>
<td align="center"><?php if ($row['maskinspec'] == "1") { echo "Ja"; } else { echo "Nej"; }  ?></td>
<td><?php echo $row['anteckningar'] ?></td>
<td align="right"><a href="<?php echo $view_url ?>"><img src="pics/k_s_k.gif" border="0"></a><a href="<?php echo $edit_url ?>"><img src="pics/k_s_r.gif" border="0"></a><a href="<?php echo $delete_url ?>"><img src="pics/k_s_x.gif" border="0"></a></td>
</tr>
<?php
}
echo "</table>";
}
```

Är det någon vänlig själv som vet hur man gör?

Permalänk: https://www.webforum.nu/p/96837

## #2 — LarsG, 2004-02-08T16:03Z

Flyttas från Mysql

Permalänk: https://www.webforum.nu/p/1271175

## #3 — Alpha II, 2004-02-08T21:16Z

```php

print "<table>";

for($n=0;$n<15;$n++)
{
    $color = $n%2 ? "#FF0000" : "#00FF00";

    print "<tr bgcolor=\"$color\"><td>&nbsp;</td></tr>\n";
}

print "</table>";
```

Permalänk: https://www.webforum.nu/p/1271292

## #4 — harry_boy, 2004-02-09T09:53Z

Jag får alternativ färgen på alla rader!

Permalänk: https://www.webforum.nu/p/1271479

## #5 — fredriksk, 2004-02-09T13:52Z

En liten moduluspryl löser problemet snyggt.....

```php
for ($i=0; $i < mysql_num_rows($foo); $i++){
		
   ...
   ...

   if (($i%2)==0)
      print("<TR bgcolor=#FFFFFF>");
   else
      print("<TR bgcolor=#CCCCCC>");

   ...
   ...
}
```

Permalänk: https://www.webforum.nu/p/1271608

## #6 — Melea, 2004-02-09T16:21Z

```php
<?php
$bg = 1;

while ( $row = mysql_fetch_array($result) ) {
$view_url = $PHP_SELF . '?view=' . $row['id']; // URL för att titta på ett visst arbete
$edit_url = $PHP_SELF . '?edit=' . $row['id']; // URL för att redigera ett visst arbete
$delete_url = $PHP_SELF . '?delete=' . $row['id']; // URL för att ta bort ett visst arbete
?>

<tr bgcolor="<?php echo ($bg++%2) ? '#EFEFEF' : '#F7F7F7' ?>">
<td align=right><?php echo $row['ordernr'] ?>-0<?php echo $row['tempo'] ?></td>
<td><?php echo $row['kund'] ?></td>
<td><?php echo $row['benamning'] ?></td>
<td align="right"><?php echo $row['ritningsnr'] ?></td>
<td align="right"><?php echo $row['antal'] ?></td>
<td align="center"><?php echo $row['levtid'] ?></td>
<td><?php echo $row['maskin'] ?></td>
<td align="right"><?php echo $row['tim'] ?></td>
<td align="center"><?php echo $row['starttid'] ?></td>
<td align="center"><?php if ($row['maskinspec'] == "1") { echo "Ja"; } else { echo "Nej"; }  ?></td>
<td><?php echo $row['anteckningar'] ?></td>
<td align="right"><a href="<?php echo $view_url ?>"><img src="pics/k_s_k.gif" border="0"></a><a href="<?php echo $edit_url ?>"><img src="pics/k_s_r.gif" border="0"></a><a href="<?php echo $delete_url ?>"><img src="pics/k_s_x.gif" border="0"></a></td>
</tr>
<?php
}
?>
```

Permalänk: https://www.webforum.nu/p/1271693

## #7 — Guldstrand, 2006-10-25T10:37Z

Jag har en liknande fråga. Hur gör jag så att varannan rad blir i en annan färg?

```php
<?php
 
// Plocka ut 10 senaste SMS
$res = mysql_query('SELECT *,unix_timestamp(tstamp) as utstamp FROM sms
	ORDER BY tstamp DESC LIMIT 10');
 
// Eka ut en tabell
echo '<table width="70%" cellspacing="0" cellpadding="5" border="1">';
echo '<tr><th>Datum</th><th>Meddelande</th></tr>';
 
// Gå igenom varje SMS - skriv ut tabellrader
while ($row = mysql_fetch_assoc($res)) {
 
	// Plocka bort första ordet (prefix) ur meddelandet
	$row['message'] = substr($row['message'],strpos($row['message'],' '));
 
	// Plocka ev bort andra ordet ur meddelandet, på samma sätt
	// $row['message'] = substr($row['message'],strpos($row['message'],' '));
	
	echo '<tr>';
	echo '<td>' . date('ymd h:i',$row['utstamp']) . '</td>';
	echo '<td>' . $row['message'] . '</td>';
	echo '</tr>';
}
 
echo '</table>';
 
?>
```

Permalänk: https://www.webforum.nu/p/1887265

## #8 — The_Hulk, 2006-10-25T10:44Z

```php
<?php

// Plocka ut 10 senaste SMS
$res = mysql_query('SELECT *,unix_timestamp(tstamp) as utstamp FROM sms
    ORDER BY tstamp DESC LIMIT 10');

// Eka ut en tabell
echo '<table width="70%" cellspacing="0" cellpadding="5" border="1">';
echo '<tr><th>Datum</th><th>Meddelande</th></tr>';
$n=0; // startvärde
// Gå igenom varje SMS - skriv ut tabellrader
while ($row = mysql_fetch_assoc($res)) {

    // Plocka bort första ordet (prefix) ur meddelandet
    $row['message'] = substr($row['message'],strpos($row['message'],' '));

    // Plocka ev bort andra ordet ur meddelandet, på samma sätt
    // $row['message'] = substr($row['message'],strpos($row['message'],' '));
    
    echo '<tr style="background-color: ' . ($n++%2==0?"#ff0000":"#00ff00") . ';">'; // denna raden är ändrad
    echo '<td>' . date('ymd h:i',$row['utstamp']) . '</td>';
    echo '<td>' . $row['message'] . '</td>';
    echo '</tr>';
}

echo '</table>';

?>
```

**/red** ändrade från + (plus) till . (punkt) på raden     echo '\<tr style="background-color: ' + ($n++%2==0?"#ff0000":"#00ff00") + ';"\>'; // denna raden är ändrad

Permalänk: https://www.webforum.nu/p/1887268

## #9 — Guldstrand, 2006-10-25T10:53Z

Tack för ett snabbt svar, men det verkar inte fungera.  :(
Som det ser ut nu, så får jag bara en massa nollor "0" **över** själva tabellen och ingen rad byter färg.

Permalänk: https://www.webforum.nu/p/1887273

## #10 — Guldstrand, 2006-10-25T21:50Z

> **Guldstrand skrev:**
>
> Tack för ett snabbt svar, men det verkar inte fungera.  :(
> Som det ser ut nu, så får jag bara en massa nollor "0" **över** själva tabellen och ingen rad byter färg.

Någon som kan hjälpa mig med detta, please!?   :r

Permalänk: https://www.webforum.nu/p/1887474

## #11 — sl0k, 2006-10-25T22:02Z

Det görs med fördel i CSS/DOM/Javascript och inte med php. 

<http://alistapart.com/articles/zebratables>

Permalänk: https://www.webforum.nu/p/1887478

## #12 — Guldstrand, 2006-10-25T22:35Z

> **sl0k skrev:**
>
> Det görs med fördel i CSS/DOM/Javascript och inte med php. 
> 
> 
> <http://alistapart.com/articles/zebratables>

Hmm, ok...
Men detta fungerar väl inte när jag hämtar och visar infon från en mysql databas?

Permalänk: https://www.webforum.nu/p/1887479

## #13 — sl0k, 2006-10-25T22:44Z

Jo, det görs i webbläsaren.. efter all serverside-output. Läs artikeln så ser du.

Permalänk: https://www.webforum.nu/p/1887481

## #14 — vic, 2006-10-26T23:33Z

borde väll vara enkelt löst...?

```php
for ($i=0; $i < $antal_rader; $i++)
{
  
  $d = $i * $i;
  $nu = $d / 2;

if ($nu == $i) 
 {echo '<TR bgcolor="#FFFFFF">';} 

else 
 {echo '<TR bgcolor="#000000">';} 

}
```

eller har jag missupfattat det hela?

Permalänk: https://www.webforum.nu/p/1890626

## #15 — The_Hulk, 2006-10-27T06:09Z

> **Guldstrand skrev:**
>
> Tack för ett snabbt svar, men det verkar inte fungera.  :(
> Som det ser ut nu, så får jag bara en massa nollor "0" **över** själva tabellen och ingen rad byter färg.

kan du visa hur den genererade HTML-koden ser ut?

Permalänk: https://www.webforum.nu/p/1890647

## #16 — The_Hulk, 2006-10-27T06:11Z

> **vic skrev:**
>
> borde väll vara enkelt löst...?
> 
>
>
> ```php
> for ($i=0; $i < $antal_rader; $i++)
> {
>   
>   $d = $i * $i;
>   $nu = $d / 2;
> 
> if ($nu == $i) 
>  {echo '<TR bgcolor="#FFFFFF">';} 
> 
> else 
>  {echo '<TR bgcolor="#000000">';} 
> 
> }
> ```
>
> 
> 
> eller har jag missupfattat det hela?

Njae, det blir inte rätt. om du visar rad 4 så ska den bli en annan färg men det blir den inte i ditt exempel. 
$i = 4;
$d = 4 \* 4 = 16;
$nu = 16 / 2 = 8; 
if(8 == 4)

för rad 2 blir det rätt men inte längre. 
$i = 2; 
$d = 2 \* 2 = 4; 
$nu = 4 / 2 = 2; 
if (2 == 2)

Permalänk: https://www.webforum.nu/p/1890649

## #17 — The_Hulk, 2006-10-27T06:15Z

ajdå, var jag som precis kommit från asp och råkade använda + istället för . (punk) för att sammanfoga strängarna. nu fungerar det.

```php
<?php

// Plocka ut 10 senaste SMS
$res = mysql_query('SELECT *,unix_timestamp(tstamp) as utstamp FROM sms
    ORDER BY tstamp DESC LIMIT 10');

// Eka ut en tabell
echo '<table width="70%" cellspacing="0" cellpadding="5" border="1">';
echo '<tr><th>Datum</th><th>Meddelande</th></tr>';
$n=0; // startvärde
// Gå igenom varje SMS - skriv ut tabellrader
while ($row = mysql_fetch_assoc($res)) {

    // Plocka bort första ordet (prefix) ur meddelandet
    $row['message'] = substr($row['message'],strpos($row['message'],' '));

    // Plocka ev bort andra ordet ur meddelandet, på samma sätt
    // $row['message'] = substr($row['message'],strpos($row['message'],' '));
    
    echo '<tr style="background-color: ' . ($n++%2==0?"#ff0000":"#00ff00") . ';">'; // denna raden är ändrad
    echo '<td>' . date('ymd h:i',$row['utstamp']) . '</td>';
    echo '<td>' . $row['message'] . '</td>';
    echo '</tr>';
}

echo '</table>';
?>
```

Permalänk: https://www.webforum.nu/p/1890651

## #18 — vic, 2006-10-27T08:18Z

ahh, självklart.... de var lite sent på kvälla. Men här har jag ett som funkar och är baserat på väldigt banal matematik.

```php
<?php

for($i = 0; $i <40; $i++)
{
if($i < 3)
{
$c = 3;
}

if($c - 1 == $i || $i == 0)
{
echo "<div style=\"height:30px; background:#CCC\"></div>\n";
$c = $i + 3;
}
else
{
echo "<div style=\"height:30px; background:#333\"></div>\n";
}

}

?>
```

I det här fallet vore dock Hulkens kod självfallet vara bättre lämpad.

tjohej   :e

Permalänk: https://www.webforum.nu/p/1890690

---

Tråden på webben: https://www.webforum.nu/amne/php/96837-byta-färg-på-varannan-rad
