如何使PHP html表之间的颜色不匹配?

时间:2011-08-05 23:53:13

标签: php html colors html-table rows

我正在学习PHP代码。从w3schools的一个例子中可以看出,使用PHP和msql在html表上显示数据库结果。我的问题是,我现在有太多的行,我不能让它们在行之间有不匹配的颜色。我已尝试在<td之后添加样式范围和字体颜色,但它不接受它。如果我这样做,整个PHP就不起作用了。

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

上面代码的输出将是:

Firstname   Lastname
Glenn   Quagmire
Peter   Griffin

http://www.w3schools.com/php/php_mysql_select.asp

5 个答案:

答案 0 :(得分:1)

不完全确定颜色不匹配是什么意思。假设您的意思是交替行颜色,我会执行以下操作:

$odd = false;

while (...)
{
    echo '<tr class="'.($odd ? "odd" : "even").'">';
    ...
    echo "</tr>";
    $odd = !$odd;
}

现在您的tr元素可以交替使用oddeven类,并且可以为CSS中的其中一个指定一些额外的背景颜色,例如:

tr.odd { background-color: rgba(0, 0, 0, 0.05); }

答案 1 :(得分:1)

替换它:

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }

用这个:

$i = 0;
while($row = mysql_fetch_array($result))
  {
  echo "<tr ". ($i % 2 == 0 ? 'style="background-color:grey;"' : '' .">";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  $i++;
  }

每隔一行都会有灰色。

答案 2 :(得分:1)

$class = "even";    
while($row = mysql_fetch_array($result))
{
  if($class == "even")
  {
    echo "<tr class='$class'>";
    $class = "odd";
  }
  else
  {
    echo "<tr class='$class'>";
    $class = "even";
  }

  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
}

CSS

tr.even
{
    background-color:blue;//Pick your own color
}

tr.odd
{
    background-color:green;
}

以下是color names的列表。如果您想要更详细的颜色选择,请点击here

答案 3 :(得分:1)

也许你可以在jquery中使用这种方法

<script src="text/javascript">
    $('#table tbody tr:odd').addClass('odd');
    $('#table tbody tr:even').addClass('even');
</script>

然后添加样式

.odd { background-color: #color }
.even { background-color: #color }

答案 4 :(得分:0)

使用

  $flag = 0;
  while($row = mysql_fetch_array($result))
  {
  if ($flag%2 == 1)
  echo "<tr bgcolor=#123345>";
  else
  echo echo "<tr bgcolor=#643235>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  $flag = $flag +1;
  }