【问题标题】:Odd or Even in PHP/MySQLPHP/MySQL 中的奇数或偶数
【发布时间】:2012-10-09 22:04:30
【问题描述】:

我想问如何在mysql->php 输出中设置奇数或事件。我可以用那个代码做到这一点:

if($i%2 == 0)
{
    $class = 'content';
}
else
{
    $class = 'contents';
}


echo "<tr class='$class'>...

...但是如果我在 mysql 中手动删除一行,输出的事情就会变得一团糟。我正在考虑使用 foreach 的某种方式......或类似的东西。任何帮助都会很棒。

【问题讨论】:

  • 到底是什么问题?请更具体地回答您的问题。你尝试了什么?
  • 删除数据库行不会影响表输出。它将以相同的方式在contentcontents 之间交替。也许您的问题需要澄清一下。您是为了演示目的而尝试交替类,还是奇数/偶数交替是数据的固有属性
  • 取消,猫又玩kb了……sigh
  • 我正在尝试创建自定义奇数/偶数。当我从 mysql 中删除手动一行时,我不希望成为两个带有 bgcolor 的 tr:红色和 1(蓝色),我想独立地成为红色、蓝色、红色、蓝色,我的 mysql 中有什么。

标签: php html mysql manual


【解决方案1】:

如果您尝试在奇偶输出行上交替,我喜欢使用简单的切换:

$toggle = false;
foreach($items as $item){

  if($toggle){
   ..contents...
  }else{
   ...alternative content....
  }
  $toggle = !$toggle;
}

如果需要紧凑的代码,您可以使用三元比较来压缩它

【讨论】:

    【解决方案2】:

    这将起作用:

    $i = 0;
    while ($row = $result->fetch_assoc()) {
        $class = ($i++ % 2) ? 'contents' : 'content';
    ...
    }
    

    【讨论】:

    • 这是更简洁的代码 BUT 它没有回答 OP 的问题......它只是重写了他拥有的代码,但给他留下了同样的问题:$i % 2 没有产生结果他想要。
    • 好的,那么的问题是什么?
    • 问题是 OP 正在循环通过一组不连续的键,所以如果数组看起来像 array(0=&gt;'a',1=&gt;'b',2=&gt;'c',4=&gt;'d') 然后使用键的 even-ness将导致最后两个元素接收相同的类。 Ray 的回答是解决这个问题的正确方法(尽管我同意 OP 的问题问得不好)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多