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)会导致内存不足吗?