开发者

How do I store all results from an SQL query in a multidimensional array?

开发者 https://www.devze.com 2023-02-17 21:36 出处:网络
hello every one i want to convert my array into other array type , plz help me out . I m using this $row = mysql_fetch_array($result, MYSQL_ASSOC);

hello every one i want to convert my array into other array type , plz help me out . I m using this

$row = mysql_fetch_array($result, MYSQL_ASSOC); 

and output is

Array ( [user_id] => 250 [name] => a [age] => sfsf [pic_path] => )

but i want the the output in this format

Array ( [0] => Array ( [user_id] => 250 [name] => a [age] => sfsf [pic_path] =>开发者_开发知识库; ) [1] => Array ( [user_id] => 251 [name] => b [age] => sfsfs [pic_path] => ) )

so what function i should us to get the array in this format


$data = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
  $data[] = $row; // add the row in to the results (data) array
}

print_r($data); // print result

Update Feb '17 Now that it's 2017, it's advised you use PDOs over mysql_*. A lot safer and can return this natively with fetchAll (as shown in `TrexXx's answer).


The only way to avoid doing a loop would to use PDO (PHP Data Objects) which is a better way to access database in PHP and you could do this :

$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    
$q = $pdo->query('select * from yourtable');
$r = $q->fetchAll();
    
var_dump($r);


If you need to store all rows returned by the query in an array, try this:

$result = array(); 

while ( $row = mysql_fetch_array($result, MYSQL_ASSOC) ){
    $result[] = $row
}


$row = array();
$row[] = mysql_fetch_array($result, MYSQL_ASSOC);

Normally you'd assign the results like this in a loop

$rows = array();
while ($result = mysql_fetch_array($result, MYSQL_ASSOC)) {       
    $rows[] = $result;
}


You can't get a multi-dimensional array from the resultset of your SQL query in just one command. You need to repeat the function mysql_fetch_array once per SQL result row.

Also you can use mysql_fetch_assoc to get the results as an associative array.

To achieve your goal:

$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
    $myArray[] = mysql_fetch_assoc($result);
}
0

精彩评论

暂无评论...
验证码 换一张
取 消