获取关联 - 每个ID一次向数组添加数据

时间:2013-07-06 14:32:03

标签: php mysql sql

我正在查询一个简单的数据库,我正在使用以下PHP代码......

while ($row = $results->fetch_assoc()) {

    if($row["status"] == 1) {
        $total[] = $row["to_win"];
    }

    print_r($total);

}

当前的数据结构如下所示......

id          to_win          status
1           1200.00         1
2           238.94          2
3           1850.57         1
4           55.00           2
5           127.85          2

问题是它似乎每次获得另一行时,它会将$ total添加到数组中。结果,我的print_r就是这个......

Array ( [0] => 1200.00 ) Array ( [0] => 1200.00 ) Array ( [0] => 1200.00 ) Array ( [0] => 1200.00 [1] => 1850.57 ) Array ( [0] => 1200.00 [1] => 1850.57 ) Array ( [0] => 1200.00 [1] => 1850.57 ) Array ( [0] => 1200.00 [1] => 1850.57 ) Array ( [0] => 1200.00 [1] => 1850.57 )

我可以让它每个ID添加一次,以便数组包含一个1200.00和一个1850.57而不是多个条目吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

结果如预期。但我想你想把print_r()置于循环之外:;)

while ($row = $results->fetch_assoc()) {
    if($row["status"] == 1) {
        $total[] = $row["to_win"];
    }
}

print_r($total);

但是,因为这很容易,我会给你另一个建议。虽然SQL列类型可能是INTEGER,但来自数据库查询的结果是字符串。虽然在这个简短的例子中它可以正常工作,但检查正确的类型是一个好习惯。所以陈述应该是:

if($row["status"] === '1')