Fetch Assoc-每个ID向数组添加一次数据


Fetch Assoc - Add Data to Array Once Per ID

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

谢谢!

结果如预期。但我想您想将print_r()放在循环之外:;)

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

但是,由于这很容易,我会给你另一个建议。来自数据库查询的结果是字符串,尽管SQL列类型可能是INTEGER。尽管在这个的简短示例中,它会按照您的意愿工作,但检查正确的类型是一个很好的做法。因此,声明应该是:

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