我在下面写了以下代码。使用此代码,我想从MySQL数据库中获取数据并在表行中打印(echo)结果,每行具有不同的颜色。使用此代码数据已成功从数据库中获取,但我更改颜色的条件不起作用。请检查我的代码,让我知道我错在哪里。
<table width="500" align="center" style="border:1px solid;">
<?php
$query = "SELECT * FROM main_cat";
$result = mysql_query($query);
$count = mysql_num_rows($result);
while($end = mysql_fetch_array($result)){
echo "<tr>";
if($count % 2 == 0){
echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>';
}else{
echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>';
}
echo "</tr>";
}
?>
</table>
答案 0 :(得分:3)
您没有将$count
初始化为0,并且您没有在任何地方递增$count
。
答案 1 :(得分:2)
这应该有效:
<table width="500" align="center" style="border:1px solid;">
<?php
$query = "SELECT * FROM main_cat";
$result = mysql_query($query);
$i = 0;
while($end = mysql_fetch_array($result)){
echo "<tr>";
if($i % 2 == 0){
echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>';
}else{
echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>';
}
echo "</tr>";
$i++;
}
?>
</table>
更好的是使用CSS,即奇数和偶数选择器:http://www.w3.org/Style/Examples/007/evenodd
答案 2 :(得分:1)
您需要在while循环中计数,而不是查询返回的总数。
不打算为你编写代码。
while while循环设置计数器为零。
在while循环检查条件下的计数器 然后将计数器值增加1
答案 3 :(得分:1)
如果您愿意,可以缩短此代码,和从PHP代码中获取HTML。这将允许像Notepad ++或NetBeans这样的编辑器突出显示HTML代码。除此之外,您只获得了一行HTML,因此维护起来会更容易。
但是,最明智的做法是使用css来设置交替行的样式,或者至少使用一个类来设置各个行的样式。
我在我的代码中使用了内联样式,因为它很脏。但是bgcolor。真?它在HTML 4.1严格中甚至不再受支持。它很旧,很吵。
<table width="500" align="center" style="border:1px solid;">
<?php
$query = "SELECT * FROM main_cat";
$result = mysql_query($query);
$i = 0;
while($end = mysql_fetch_array($result)){
$color = ($i++ % 2 == 0 ? '#CCCCCC' : '#99CC66');
$page = $end['page_name'];
?>
<tr><td style="background-color: <?=$color?>"><?=$page?></td></tr>
<?php
}
?>
</table>
归功于Jeroen。这是他的代码我基于这个例子。
答案 4 :(得分:0)
我认为您应该制作不同颜色的数组,然后使用更改索引更改每行的颜色。像这样
<table width="500" align="center" style="border:1px solid;">
<?php
$query = "SELECT * FROM main_cat";
$result = mysql_query($query);
$clr=0;
$colors = array('blue','green','purple','orange','red');
while($end = mysql_fetch_array($result)){
echo '<tr style="font-size:18px;background-color:'.$colors[$clr].'">';
echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>';
echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>';
echo "</tr>";
$clr++;
if($clr==5)
$clr=0;
}
?>