0

我正在查询一个简单的数据库,并且正在使用以下 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 而不是多个条目?

谢谢!

4

1 回答 1

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')
于 2013-07-06T14:35:51.657 回答