Function for putting all database table to an array
I have written a function to print database table to an array like this
$db_array=
Array(
ID=>1,
PARENTID =>1,
TITLE => LIPSUM,
TEXT =>LIPSUM
)
My function is:
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;
}
Anything wrong in my function. Any help is appreciated about my problem. Thanks in advance
Seems like you are trying to print a table (not a database)
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;
}
(Edit: fixed missing second parameter in print_r)
Im not sure your function will get all the rows returned by the database. mysql_fetch_array()
returns only one row. So the for loop is pretty pointless.
Instead you should something like this instead of the for loop.
while($row = mysql_fetch_array($query) {
$allArrays[] = $row;
}
by the way if you still want to use the for loop you could try something like this. But what would be the point?
the while loop works perfectly for this.
$numRows = mysql_num_rows($query);
for($i = 0; $i < $numRows; $i++) {
$allArrays[$i] = mysql_fetch_array($query);
}
It looks like it'll work, but kind of defeats the purpose of a relational database.. Why not just serialize your data and write it to a file?
精彩评论