php - 将行号和奇/偶类添加到 php 表

标签 php mysql

<分区>

Possible Duplicate:
php: how to add odd/even loop in array

我正在使用以下代码在 php 中生成一个表。

<?PHP
while ($row = $mydata->fetch())
{
  $tests[] = array(
  'a' => $row['a'], 
  'b' => $row['b']
  )
  ;
}

?>

然后是输出代码

<table>
  <tbody>
  <tr><th>#</th><th>a</th><th>b</th></tr>
  <?php foreach ($tests as $test): ?>
    <tr class="">
        <td></td>
        <td><?php htmlout($test['a']); ?></td>
        <td><?php htmlout($test['b']); ?></td>
    </tr>
<?php endforeach; ?>
  </tbody>
  </table>

哪些输出

<table>
  <tbody>
  <tr><th>#</th><th>a</th><th>b</th></tr>
    <tr class="">
        <td></td><td>a content</td><td>b content</td>
    </tr>
    <tr class="">
        <td></td><td>a content</td><td>b content</td>
    </tr>
  </tbody>
  </table>

htmlout 是下面的自定义函数。

<?php
function html($text)
{
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
function htmlout($text)
{
echo html($text);
}
?>

这一切都很好,但我无法在这里解决两件事。

  1. 我希望我的行生成 <tr class="odd"><tr class="even">在隔行
  2. 我要第一个<td></td><tr> 内计数显示数据的行号,例如 <td>1</td>在第一个<tr class=""> <td>2</td>在第二等

我看过很多这样的例子

$count = 1;
while ($count <= 10)
{
echo "$count ";
++$count;
}

但无法弄清楚如何将其实现到我的示例中,或者我应该使用其他方法。我知道我可以在 jQuery 和一些带有 css3 的浏览器中做表格行,但在这种情况下更喜欢 php 解决方案。

最佳答案

你可以这样使用:

<?php foreach ($tests as $i => $test): ?>
    <?php $class = ($i % 2 == 0) ? 'even' : 'odd'; ?>
    <tr class="<?php echo $class; ?>">
        <td><?php echo $i + 1; ?></td>
        <td><?php htmlout($test['a']); ?></td>
        <td><?php htmlout($test['b']); ?></td>
    </tr>
<?php endforeach; ?>

这利用了数组保留数字索引 $i 的事实.所以,行号真的是$i + 1 ,我们将其放入第一列。然后,我们根据$i判断当前行是偶数还是奇数。可以被 2 整除。如果 $i能被2整除就是偶数行,否则就是奇数行。我们将类字符串保存在 $class 中, 并将其放入 <tr>标签。

关于php - 将行号和奇/偶类添加到 php 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697256/

相关文章:

mysql - 优化MySQL单表SQL查询

PHP mysql_query 不适用于变量

php - 如何计算 MySQL 表中的行数 (PHP PDO)

php - 解析 xml 响应奇怪

php - 在 Laravel Controller 中检查多个守卫

php - 使用一组值(从 session 数组存储的值)的 MYSQL 查询不起作用

php - 警告 : mysql_fetch_array() expects parameter 1 to be resource, 中给出的 bool 值

mysql - 更改MySQL的varchar大小

php - 如何在MediaWiki中查询数据库?

php - Date.parse 的用法