Заполните массив PHP из цикла while - PullRequest
21 голосов
/ 19 июля 2011

Если я выбираю данные из базы данных MySQL и использую цикл while для итерации данных, как бы я добавил каждый из них в массив?

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

}

Ответы [ 5 ]

68 голосов
/ 19 июля 2011

Создайте массив в процессе итерации с циклом while.

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

В качестве альтернативы, если вы использовали PDO , вы могли бы сделать это автоматически .

6 голосов
/ 19 июля 2011

Это был один из самых быстрых способов создания (многомерных) массивов. Я не уверен, хотите ли вы, чтобы все ваши результаты помещались в один массив или нет.

// 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 голосов
/ 19 июля 2011

Это поможет:

$rows = array();
$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))
{
  $rows[] = $row;
}
1 голос
/ 29 января 2016

Если у вас есть несколько столбцов в вашей таблице отделов, и вы хотите сохранить в другом массиве.

$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'];
}
0 голосов
/ 19 марта 2015

Мой фавор следующий:

$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.

...