虽然foreach循环中的循环没有正确循环

时间:2010-05-09 23:23:41

标签: php mysql

我正在尝试为学校项目制作一个非常基本的PHP ORM。我几乎所有工作都在工作,但我正在尝试将结果映射到数组。这是一段希望能帮助我解释的代码片段。

$results = array();

foreach($this->columns as $column){

    $current = array();

    while($row = mysql_fetch_array($this->results)){
        $current[] = $row[$column];
        print_r($current);
        echo '<br><br>';
    }

    $results[$column] = $current;

}

print_r($results);

return mysql_fetch_array($this->results);

这样可行,但while循环仅适用于第一列。 The print_r($results);显示以下内容:

Array ( [testID] => Array ( [0] => 1 [1] => 2 ) [testName] => Array ( ) [testData] => Array ( ) )

有人可以解决一些问题吗? 提前谢谢!

2 个答案:

答案 0 :(得分:4)

这是因为你已经获取了每一行,内部指针就在最后。 接下来,mysql_fetch_array()将立即返回false。 您可以将指针重置为第一行:

mysql_data_seek($this->results, 0);

把它放在

之前
while($row = mysql_...

答案 1 :(得分:0)

我不确定你可以使用 - &gt;变量名称中的运算符。当你试图从数组$ columns中获取密钥和值时?如果是这样,你想要这样的东西:

foreach($columns as $k => $v) {
//in here, $k is the name of the field, and $v is the associated value

}