Gå til innhold

[LØST]Hvordan få forsjellig farge på annenhver linje (Table)


Anbefalte innlegg

Hei. jeg har søkt litt inne på forumet her / google etter noe som kan skifte farge på tabellen min. Den går opp mot Mysql og henter en del :) og som jeg sa så vil jeg ha forskjellig farge på annehver linje :)

 

Fant noe på den ene Sticky tråden her men den funka ikke helt :S

 

Ijallefall håper noen kan hjelpe meg!

 

<?
echo "<table width=100% border=0 cellpadding=10><th>Revision</th><th>Fixed</th><th>Date</th><th>Fixed By</th>";
$result = mysql_query("SELECT * FROM changelog ORDER BY id DESC") or die(mysql_error());  
while ($rad = mysql_fetch_array($result)){
$rev = $rad['id'];
$text = $rad['fix'];
$forfatter = $rad['forfatter'];
$color = $rad['color'];
$dato = $rad['dato'];

$color = "1";
if ($color == "1"){
echo "<tr bgcolor='#C0C0C0'><td>Rev $rev</td><td>$text</td><td>$dato</td><td>$forfatter</td></tr>";
$color = "2";
}else {
echo "<tr bgcolor='#FFFFFF'><td>Rev $rev</td><td>$text</td><td>$dato</td><td>$forfatter</td></tr>";
$color = "1";
}
}
echo "</table>";

?>

Problemet er da at den bare bruker den første linja (den med bgcolor='#C0C0C0')

 

 

Hilsen Dryper

Endret av Dryper
Lenke til kommentar
Videoannonse
Annonse
Rett før if-setningen setter du $color til 1. Dvs. den vil alltid være 1. Meningen er nok at du skal sette $color til 1 utenfor while-løkken din.

 

 

Forskjell ble det men nå ble alle resultatene til "else" istedenfor begge deler :)

Lenke til kommentar
Rett før if-setningen setter du $color til 1. Dvs. den vil alltid være 1. Meningen er nok at du skal sette $color til 1 utenfor while-løkken din.

 

 

Forskjell ble det men nå ble alle resultatene til "else" istedenfor begge deler :)

 

 

Æsj .. det er da en skikkelig tabbe av meg å ha 2 strenger som heter det samme :) det var at den henter ut database resultater på color :O

 

Takker for hjelp .. det hjalp :=)

Lenke til kommentar

Her er en annen måte å gjøre dette på, som jeg i alle fall synes er ryddigere og enklere å bruke:

<?
echo "<table width=100% border=0 cellpadding=10><th>Revision</th><th>Fixed</th><th>Date</th><th>Fixed By</th>";
$result = mysql_query("SELECT * FROM changelog ORDER BY id DESC") or die(mysql_error());  

$counter = 0;

while ($rad = mysql_fetch_array($result)){
$rev = $rad['id'];
$text = $rad['fix'];
$forfatter = $rad['forfatter'];
$color = $rad['color'];
$dato = $rad['dato'];

echo "<tr bgcolor='". ($counter++ % 2 ? '#f00' : '#fff') ."'><td>Rev $rev</td><td>$text</td><td>$dato</td><td>$forfatter</td></tr>";

}
echo "</table>";

?>

Lenke til kommentar
Mens vi er inne på langt mer elegante løsningsmetoder, ta også en liten titt på list().

 

<?php

while ( $rad = mysql_fetch_array ( $result, MYSQL_NUM ) ) {

	list ( $rev,
		   $text,
		   $forfatter,
		   $color,
		   $dato ) = $rad;

	// 1 .. 2 .. 3

}

?>

 

Ja så bedre ut den :) Er dette raskere og slikt da eller ? :)

Lenke til kommentar
Tviler på at det er noen vesentlig forskjell. Burde strengt tatt ikke være nødvendig å sette alle de variablene uansett, når de allerede ligger i $rad.

 

Nei den strengen i $rad skulle egentlig være til Hvilken type "Change " det er.. feks Updated = green , Changed = blå , , Deleted = Rød ect :) men det gikk

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...