如何用php从mysql中获取数据并以多种颜色显示....比如
[gray]first post
[white]second post
[gray]third post
[white]forth post
我知道mysql_fetch_array
但我怎样才能显示多色的数据,如上所述
答案 0 :(得分:2)
你必须循环你的线,知道你是在“偶数”或“奇数”线(至少,如果你想要两种颜色),可以使用模数计算操作
例如,作为一个简单的想法,以下代码:
$arr = array(
'first',
'second',
'third',
'fourth',
);
$i = 0;
foreach ($arr as $line) {
$class = ($i%2 ? 'odd' : 'even');
echo '<div class="' . $class . '">' . htmlspecialchars($line) . '</div>' . "\n";
$i++;
}
将提供此HTML输出:
<div class="even">first</div>
<div class="odd">second</div>
<div class="even">third</div>
<div class="odd">fourth</div>
现在,您可以配置两个.odd
和.even
CSS类来获取所需的颜色。
答案 1 :(得分:1)
有很多方法可以做到这一点(大多数方法比这个例子更复杂),但你似乎在寻找一个简单的解决方案。
for($c=true; false!==($row=mysql_fetch_array($result, MYSQL_ASSOC)); $c=!$c) {
$class = $c ? 'even':'odd';
echo '<div class="', $class, '">', $row['x'], '</div>', "\n";
}
$c ? 'even':'odd';
测试$ c是真还是假,如果是真,结果为'偶数',如果为假则结果为'奇数'。即$ class是'even'或'odd',具体取决于$ c的值。
for循环以$ c = true开头(for循环的初始化部分)。在循环的每次迭代结束时执行$c=!$c
,其从true-&gt; false或false-&gt; true翻转$ c,即$ c在true和false之间交替。
您还可以使用javascript让客户添加着色作为增强功能 例如。使用jquery:
<html>
<head>
<style type="text/css">
tr.even td { background-color: red; }
tr.odd td { background-color: blue; }
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$('#t1 tr:odd').addClass('even');
$('#t1 tr:even').addClass('odd');
});
</script>
</head>
<body>
<table id="t1">
<tr><td>a</td><td>A</td></tr>
<tr><td>b</td><td>B</td></tr>
<tr><td>c</td><td>C</td></tr>
<tr><td>d</td><td>D</td></tr>
<tr><td>e</td><td>E</td></tr>
</table>
</body>
</html>
答案 2 :(得分:0)
Itay Moav和Pascal MARTIN的示例有效,但是如果你有一个数字数组,你可以稍微简化代码:
foreach ($rows as $i => $row){
$even_odd = ($i%2) ? 'even' : 'odd';
echo "<tr class='$even_odd'>......";
}
答案 3 :(得分:-1)
在循环中
$i=0;
foreach ($rows as $row){
echo '<tr class="color'.($i%2).'">.........';
$i++;
}
在css中
.color1{ background-color: white}
.color0{ background-color: silver}