我编写了一个函数来将数据库表打印到像这样的数组
$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;
}
我的功能有什么不对。任何帮助都对我的问题表示赞赏。提前致谢
答案 0 :(得分:2)
好像你正在尝试打印一个表(不是数据库)
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中缺少的第二个参数)
答案 1 :(得分:0)
看起来它会起作用,但有点破坏了关系数据库的目的..为什么不将序列化数据并将其写入文件?
答案 2 :(得分:0)
我不确定您的函数是否会获取数据库返回的所有行。 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);
}