我编写了一个函数,将数据库表打印到如下数组中
$db_array=
Array(
ID=>1,
PARENTID =>1,
TITLE => LIPSUM,
TEXT =>LIPSUM
)我的功能是:
function dbToArray($table)
{
$allArrays =array();
$query = mysql_query("SELECT * FROM $table");
$dbRow = mysql_fetch_array($query);
for ($i=0; $i<count($dbRow) ; $i++)
{
$allArrays[$i] = $dbRow;
}
$txt .='<pre>';
$txt .= print_r($allArrays);
$txt .= '</pre>';
return $txt;
}我的函数中有任何错误。对于我的问题,任何帮助都是非常感谢的。提前感谢
发布于 2010-03-19 08:03:44
我不确定您的函数是否能获得数据库返回的所有行。mysql_fetch_array()仅返回一行。所以for循环是毫无意义的。
相反,您应该这样做,而不是使用for循环。
while($row = mysql_fetch_array($query) {
$allArrays[] = $row;
}顺便说一句,如果你仍然想使用for循环,你可以尝试这样做。But what would be the point?的while循环可以很好地解决这个问题。
$numRows = mysql_num_rows($query);
for($i = 0; $i < $numRows; $i++) {
$allArrays[$i] = mysql_fetch_array($query);
}发布于 2010-03-19 08:00:32
看起来您正在尝试打印表(而不是数据库)
function printTable($table){
$allRows = array();
$query = mysql_query("SELECT * FROM $table");
while($row = mysql_fetch_array($query)){
$allArrays[] = $row;
}
$txt ='<pre>';
$txt .= print_r($allRows, true);
$txt .= '</pre>';
echo $txt;
return $txt;
}(编辑:修复print_r中缺少的第二个参数)
发布于 2010-03-19 07:55:34
它看起来可以工作,但有点违背了关系数据库的目的。为什么不直接序列化数据并将其写入文件呢?
https://stackoverflow.com/questions/2474127
复制相似问题