2011-02-08 5 views
0
$data = mysql_query("SELECT * FROM users); 

データは$data変数に格納されます。 mysqlデータを配列に格納して返したいと思います。mysqlクエリmysql_fetch_array

$data_array = mysql_fetch_assoc($data); 

これは、データの最初の行(最初の配列)を格納します。

私は何をすべきか疑問に思っていたすべての行を保存するようになりました。

答えて

-1
$res = mysql_query($sql); 
    $data = array(); 
    while(($row[] = mysql_fetch_array($res)) !== false) { 
    } 
-1

結果セットが大きい場合は、それを行うのは良い考えではありません。処理中にのメモリを多く使用すると、が使用されます。

<?php 

$query="select * from table_xyz"; 
$result = mysql_query($query) or die(mysql_error()); 
$arr_table_result=mysql_fetch_full_result_array($result); 

function mysql_fetch_full_result_array($result) 
{ 
    $table_result=array(); 
    $r=0; 
    while($row = mysql_fetch_assoc($result)){ 
     $arr_row=array(); 
     $c=0; 
     while ($c < mysql_num_fields($result)) {   
      $col = mysql_fetch_field($result, $c);  
      $arr_row[$col -> name] = $row[$col -> name];    
      $c++; 
     }  
     $table_result[$r] = $arr_row; 
     $r++; 
    }  
    return $table_result; 
} 

?> 

Got the code sample from the PHP site

は、あなたがこのようなアレイ上のすべてのものを保存することができ、と述べました。

+2

聖なるギョウジャニンニク。クエリを適切に記述するだけでビジネス全体を回避することができます(*の代わりにエイリアスを指定するフィールドを指定します)。そして、$ rowはこれらのフィールドエイリアスをキーとして含み、別のテーブルに入れます。このコードブロック全体は約6行に縮小されます。 –

3

標準的なアプローチ:

$res = mysql_query($sql); 
    $data = array(); 
    while(($row = mysql_fetch_array($res)) !== false) { 
     $data[] = $row; 
    } 

// now $data is an array with all rows 

http://php.net/manual/en/function.mysql-fetch-array.php

は、行がもうない場合 が取得された行に対応する、またはFALSE 文字列の配列を返します。

このアプローチは、mysql_fetch_*の機能で動作します。醜い

1
while ($row = mysql_fetch_assoc($data)) 
    { 
    array_push($data_array,$row); 
    } 
+0

これとパブロ・サントクルーズの違いは何ですか? –