我正在尝试为学校项目制作一个非常基本的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 ( ) )
有人可以解决一些问题吗? 提前谢谢!
答案 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
}