使用php获取多色的mysql数据

时间:2009-12-09 17:47:21

标签: php

如何用php从mysql中获取数据并以多种颜色显示....比如

[gray]first post
[white]second post
[gray]third post
[white]forth post

我知道mysql_fetch_array但我怎样才能显示多色的数据,如上所述

4 个答案:

答案 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}