PHP foreach循环的意外行为
我在这里试图做的是写一个代码来自动更新我的数据库;对于那些派生属性。下面是我尝试获取数组中所有行的代码部分:PHP foreach循环的意外行为,php,mysqli,Php,Mysqli,我在这里试图做的是写一个代码来自动更新我的数据库;对于那些派生属性。下面是我尝试获取数组中所有行的代码部分: include("dbConnect.php"); $results = $mysqli->query("SELECT * from nw_order;"); if($results) foreach($results as $hgh) $resultArray[] = $results->fetch_row(); else die("Qu
include("dbConnect.php");
$results = $mysqli->query("SELECT * from nw_order;");
if($results)
foreach($results as $hgh)
$resultArray[] = $results->fetch_row();
else
die("Query failed");
foreach($resultArray as $row) {
foreach($row as $field)
print $field." ";
print "<br>";
}
include(“dbConnect.php”);
$results=$mysqli->query(“从nw_订单中选择*”;
如果(结果)
foreach(结果为$hgh)
$resultArray[]=$results->fetch_row();
其他的
die(“查询失败”);
foreach($resultArray作为$row){
foreach($行作为$字段)
打印$field。“”;
打印“
”;
}
出于某种原因,foreach只抓取偶数行。
另外,试图用while替换foreach会导致内存不足错误。我太累了,明天要办理登机手续。如果你能帮我的话,那就太棒了。include(“dbConnect.php”);
include("dbConnect.php");
$results = $mysqli->query("SELECT * from nw_order;");
$rows = array();
if($results) {
$rows = $results->fetch_all();
}
foreach($rows as $row) {
foreach($row as $field) {
echo $field." ";
}
echo "<br>";
}
$results=$mysqli->query(“从nw_订单中选择*”;
$rows=array();
如果(结果){
$rows=$results->fetch_all();
}
foreach($行作为$行){
foreach($行作为$字段){
echo$字段。“;
}
回声“
”;
}
但实际上,我既不希望“选择*”也不希望随意打印所有字段。
我发现,当事情变得更明确时,它们更易于维护。没有数据就不可能帮助您解决问题。为什么要循环使用
$results
变量来填充$resultaray
变量来再次循环?这不是从结果中获取行的方式。foreach()获取一行,然后通过fetch_row()调用丢弃$hgh并获取另一行。如果坚持使用foreach,那么至少将其更改为foreach(…){$resultArray[]=$hgh;}
Ok。这是有道理的。我知道这有点不对劲。我建议,如果你清理/改进他的代码,就彻底地去做。每个条件语句或循环语句都应该使用括号。有一天,其他人会抓到这段代码,然后匆忙地在if($results)
-块中添加另一行代码,并想知道为什么它不起作用。还有一个类似的帖子将诞生:):D是的,这些帖子一直在诞生。非常感谢。顺便问一下,这看起来不错,你能解释一下为什么使用while($results)会导致内存不足吗?