从mysql打印的每一行都应该是彩色的

时间:2012-07-20 12:06:53

标签: php mysql html css

我在wordpress网站上有一个联系表格,它是mysql的数据,也是用邮件发送的。我目前正在开发一个简单的wep应用程序,它只是从数据库中读取数据并打印出来。为了便于在移动设备上阅读,我希望从数据库打印的每隔一行都是灰色的,每隔一秒是白色的。我试过这个但是失败了,正如你从代码中看到的那样。所以我希望它看起来像这样: http://i49.tinypic.com/20fbvdi.png 这是代码:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Yhteydenottopyynnöt</title>
<style>
body{width:100%;}
.anotherrow{background-color:#f1f;}
</style>
</head>

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

mysql_select_db("database", $con);

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

echo "<table border='1'>
<tr>
<th style='width:10%;'>ID</th>
<th style='width:10%;' class='anotherrow'>Nimi</th>
<th style='width:10%;'>Puhelin</th>
<th style='width:10%;' class='anotherrow'>Sposti</th>
<th style='width:40%;'>Viesti</th>
<th style='width:10%;' class='anotherrow'>P&auml;iv&auml;</th>
<th style='10%;'>IP</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td style='width:10%;'>" . $row['ID'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'>" . $row['Nimi'] . "</td>";
  echo "<td style='width:10%;'>" . $row['Puhelin'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'><a href='mailto:" . $row['Email'] . "'>" . $row['Email'] . "</a></td>";
  echo "<td style='width:40%;'>" . $row['Viesti'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'>" . $row['Day'] . "</td>";
  echo "<td style='width:10%;'>" . $row['IP'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>
</body>
</html>

请不要从代码中做恶梦,它对我来说足够有效,而且我是唯一一个使用网络应用的人:)

4 个答案:

答案 0 :(得分:10)

为什么不采用更现代的方法并使用CSS3选择器?

tr:nth-child(even) { background: #f1f; }

有关兼容性状态,请参阅herehere

答案 1 :(得分:5)

在你之前创建一个迭代计数器。

$i = 0;
while($row = mysql_fetch_array($result))

然后如果$i是偶数,则应用一种颜色,如果它是奇数,则应用一种颜色。

if ($i % 2 == 0) {
  echo "<tr class='firstColor'>";
} else {
  echo "<tr class='secondColor'>";
}

while结束之前迭代您的变量。 $i++

答案 2 :(得分:2)

试试这个;

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Yhteydenottopyynnöt</title>
<style>
body{width:100%;}
.anotherrow{background-color:#f1f;}
</style>
</head>

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

mysql_select_db("database", $con);

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

echo "<table border='1'>
<tr>
<th style='width:10%;'>ID</th>
<th style='width:10%;'>Nimi</th>
<th style='width:10%;'>Puhelin</th>
<th style='width:10%;'>Sposti</th>
<th style='width:40%;'>Viesti</th>
<th style='width:10%;'>P&auml;iv&auml;</th>
<th style='10%;'>IP</th>
</tr>";

$count = 0;
while($row = mysql_fetch_array($result))
  {
  echo "<tr".((($count%2) == 0)?"":" class='anotherrow'").">";
  echo "<td style='width:10%;'>" . $row['ID'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'>" . $row['Nimi'] . "</td>";
  echo "<td style='width:10%;'>" . $row['Puhelin'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'><a href='mailto:" . $row['Email'] . "'>" . $row['Email'] . "</a></td>";
  echo "<td style='width:40%;'>" . $row['Viesti'] . "</td>";
  echo "<td style='width:10%;' class='anotherrow'>" . $row['Day'] . "</td>";
  echo "<td style='width:10%;'>" . $row['IP'] . "</td>";
  echo "</tr>";
$count++;
  }
echo "</table>";

mysql_close($con);
?>
</body>
</html>

答案 3 :(得分:0)

一个非常简单的解决方案是为Odd和Even值制作2个简单的CSS类。并在每个中定义单独的背景颜色。然后使用以下代码完成您的工作:

$j=0;
if(!($j%2)) {
            $cssClass = 'odd';
         } else {
            $cssClass = 'even';
         }
         $j++;

<tr class=<?php echo $cssClass; ?> > Data </tr>

有点像这样。