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