web-dev-qa-db-ja.com

Populate PHP Whileループからの配列

MySQLデータベースからデータをフェッチし、whileループを使用してデータを反復処理する場合、各データを配列に追加するにはどうすればよいですか?

$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))
{

}
23
JosephD

whileループで反復しながら配列を作成します。

$result = mysql_query("SELECT * FROM `Departments`");
$results = array();
while($row = mysql_fetch_assoc($result))
{
   $results[] = $row;
}

あるいは、 [〜#〜] pdo [〜#〜] を使用した場合、 これを自動的に行う を使用できます。

71
alex

これは、(多次元の)配列を作成する最も速い方法の1つです。すべての結果を1つの配列に平滑化するかどうかはわかりません。

// Read records
$query = "SELECT * FROM `Departments`"; 
$query = mysql_query($query);

// Put them in array
for($i = 0; $array[$i] = mysql_fetch_assoc($query); $i++) ;

// Delete last empty one
array_pop($array);

Print_r($ array)を使用して結果を確認できます。

6
Blake

これはトリックを行います:

$rows = array();
$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))
{
  $rows[] = $row;
}
6
squinlan

Departmentsテーブルに複数の列があり、異なる配列に保存する場合。

$result = mysql_query("SELECT * FROM `Departments`");
$dept_id = array();
$dept_name=array();
while($row = mysql_fetch_assoc($result))
{
//fetches and store all results in id column on your departments table
$dept_id= $row['id'];
//fetches and store all results in name column on your departments table    
$dept_name=$row['name'];
}
1
M.Nabeel

私のお気に入りは次のとおりです。

$result=odbc_exec($conn,$sql);
if ($result) {
    while($found_results[] = odbc_fetch_array($result)) { } 
    array_pop($found_results); //pop off the empty line from while loading
}

最後の行をポップする必要はありませんが、省略すると空白のままになります。明らかにmysqlでも同じように動作します。

1
2114L3