从 While 循环中填充 PHP 数组

26

如果我从MySQL数据库中获取数据,并使用while循环迭代数据,那么如何将每个数据添加到数组中?

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

}
5个回答

76

使用 while 循环迭代时逐步构建数组。

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

或者,如果您使用了PDO,您可以自动执行此操作


如何将一个数组中仅放置一列,并且该数组的索引应为主键? - user1899563
@bhawin 学习 PHP 数组的工作原理,你会发现它很简单。 - alex

7
这个可以解决问题:
$rows = array();
$result = mysql_query("SELECT * FROM `Departments`");
while($row = mysql_fetch_assoc($result))
{
  $rows[] = $row;
}

6

这对我来说是创建(多维)数组的最快方法之一。我不确定你是否希望将所有结果压缩到一个数组中。

// 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)来查看结果。

2
如果您的“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'];
}

2
我最喜欢的是以下内容;
$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同样适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接