Avatar billede internet Nybegynder
09. september 2007 - 19:13 Der er 10 kommentarer og
1 løsning

Forskellig farve - skiftevis

Når jeg henter data fra en my sql database, hvordan kan jeg så få php til at skifte farve, hveranden gang.

Fx grå, hvid, grå, hvid, grå, hvid osv.
Avatar billede ellebaek Nybegynder
09. september 2007 - 19:19 #1
Eventuelt kunne du:

$i = 0;
while ($row = mysql_fetch_array($result)) {
if ($i % 2 == 0) {
  echo "<tr><td bgcolor=\"color1\">";
}
else {
  echo "<tr><td bgcolor=\"color2\">";
}
echo $row[0] . "</td></tr>"
$i++;
}

kan ikke helt huske syntaxen for table background colors...
men det er noget i den her stil.. og det du så gør er at indføre en tæller, hvor du så med % (modulo) tager resten af divisionen med 2... og så hvis den er 0, så er det hver anden celle.. og den skal farves en farve... og ellers vælges en anden farve..
Avatar billede webudvikleren Nybegynder
09. september 2007 - 19:24 #2
while ( ... )
{
  $c = ($c%2==0) ? "#fff" : "#eee";

  ## $c er farven ##
  echo $c;
}
Avatar billede webudvikleren Nybegynder
09. september 2007 - 19:25 #3
$c = ($a++%2==0) ? "#fff" : "#eee";

selvfølgelig
Avatar billede internet Nybegynder
09. september 2007 - 19:26 #4
Jeg er ikke så god til PHP.

Hvordan laver man sådan en tæller?
Avatar billede webudvikleren Nybegynder
09. september 2007 - 19:29 #5
<?php
$SQL = "SELECT `hej` FROM `dig` ORDER BY `mig`";
$QUY = mysql_query ( $SQL ) or die ( mysql_erorr());

$b = '';
$b.="<table cellspacing=\"0\" cellpadding=\"0\">";

while ( $row = mysql_fetch_assoc ( $QUY ) )
{
    $c = ($a++%2==0) ? "#EEE" : "#FFF";
   
    $b.= "<tr>
    $b.= "<td style=\"background-color:" . $c . ";\">" . $row['hej'] . "</td>";
    $b.="</tr>";
}

$b.= "</table>";

## OUTPUT ##
echo $b;
?>
Avatar billede ellebaek Nybegynder
09. september 2007 - 23:28 #6
tælleren var allerede indført :-)

Jeg ville bare beskrive hvordan koden virkede...

Altså at du har $i som din tæller, denne tælles hele tiden op, og så laves en if på den for at se hvad farven ska være..
Avatar billede internet Nybegynder
10. september 2007 - 17:36 #7
Jeg har prøvet at den til at virke:

<?php

$seek = ($_GET['seek']) ? $_GET['seek'] : 0;
$conn = mysql_connect("$server", "$user", "$password");
mysql_select_db("$database");
// Hent først data ud
$resultat = mysql_query("SELECT * FROM offers WHERE navn like '$seek'") or die (mysql_error());
$number = mysql_num_rows($resultat);
print  "<p>$number result(s) for <b>$seek</b> </p>";
while ($row = mysql_fetch_assoc($resultat)) {
extract($row);
?>

<?php
$b = '';
$b.="<table cellspacing=\"0\" cellpadding=\"0\">";

while ( $row = mysql_fetch_assoc ( $resultat ) )
{
    $c = ($a++%2==0) ? "#EEE" : "#FFF";
 
    $b.= "<tr>
    $b.= "<td style=\"background-color:" . $c . ";\">" . $row['navn'] . "</td>";
    $b.="</tr>";
}

$b.= "</table>";

## OUTPUT ##
echo $b;
?>

<?php }?>

Hvad er der galt?
Avatar billede webudvikleren Nybegynder
10. september 2007 - 17:51 #8
du skal lige huske "; ved $b.="<tr> :)


<?php
$seek = ($_GET['seek']) ? $_GET['seek'] : 0;

mysql_connect($server, $user, $password);
mysql_select_db($database);

$b = '';
$b.="<table cellspacing=\"0\" cellpadding=\"0\">";

$resultat = mysql_query("SELECT `navn` FROM `offers` WHERE `navn` LIKE '" . $seek . "'") or die (mysql_error());

print  "<p><strong>" . mysql_num_rows($resultat) . "</strong> result(s) ";
print  "for <strong>" . $seek . "</strong> </p>";

while ( $row = mysql_fetch_assoc( $resultat ) )
{
    $c = ($a++%2==0) ? "#EEE" : "#FFF";

    $b.= "<tr>";
    $b.= "<td style=\"background-color:" . $c . ";\">" . $row['navn'] . "</td>";
    $b.= "</tr>";
}

$b.= "</table>";

## OUTPUT ##
echo $b;
?>
Avatar billede internet Nybegynder
10. september 2007 - 17:57 #9
tak.
Avatar billede internet Nybegynder
10. september 2007 - 17:58 #10
ellebaek hvis du også skal have point så skriv.
Avatar billede ellebaek Nybegynder
10. september 2007 - 19:26 #11
nej tak...
det er fair nok..

godt du fik det fikset..
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

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