【问题标题】:comparing rows mysql, php比较行mysql,php
【发布时间】:2012-04-07 05:16:29
【问题描述】:

有没有办法比较 php 中两个不同表中的字符串?例如:

     Clothing Item      Price tag
     Scarf              £5
     Scarf              £6
     Scarf              £4
     Cloth              £10
     Shoe               £15

我基本上想按名称对不同的项目进行分组。对于每个不同的项目,我想在两种颜色之间交替。因此,如果该项目是一条围巾,我将它染成蓝色,然后因为下一个项目也是一条围巾,我也将它染成蓝色。在那之后,因为我有一块布,所以它会被染成黄色,因为下一个是鞋子,所以它会被染成蓝色。我想出了一些使用 php 的东西:

    $previous = "";
    while ($row = mysql_fetch_array($result)) 
    {
    if ( $row['firstName'] != $previous) {
    echo "<tr bgcolor = 'blue'>";
    }
    else {
    echo "<tr bgcolor = 'yellow'>";
    }
    blah blah
    }

当我这样做时,我得不到我想要的。我从中得到的是第一条围巾是黄色的,而另外两条是蓝色的。然后因为围巾!=布,我得到黄色,也因为布!=鞋子,我得到黄色而不是蓝色。

我可以立即看到问题所在,但我不知道如何解决。请帮忙。谢谢

【问题讨论】:

  • 你没有更新$previous的值
  • 这实际上与 mysql 无关,只是您从数据库中获取数据。这纯粹是“我如何为表格中的交替行着色”。
  • @MarcB 谢谢这对我有用-_-
  • 不要,我重复一遍,不要,使用 mysql_* 接口。切换到 mysqli 或 PDO。它已被弃用并在最新的 PHP 版本中消失。

标签: php rows


【解决方案1】:

将当前颜色作为一个单独的变量从循环外部开始跟踪,然后在项目的名字更改时更改它:

$color = true;
$previous = '';
while ($row = mysql_fetch_array($result)) 
{
if ( $row['firstName'] != $previous) {
    $color = !$color;
    $previous = $row['firstName'];
}
echo "<tr bgcolor = '", ($color?'blue':'yellow'),"'>";


blah blah
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多