2011-07-19 150 views
19

如果我从MySQL数据库获取数据并使用while循环来遍历数据,那么我将如何将每个数据添加到数组?从while循环填充PHP数组

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

} 

回答

61

在迭代while循环时建立一个数组。

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

另外,如果你使用PDO,你可以do this automatically

+11

你太快了! ;) – AlienWebguy

+0

如何只将一列放在一个数组和索引od数组应该是主键? – 2013-10-08 10:58:18

+0

@bhawin了解PHP数组如何工作,您会发现它很简单 – alex

5

这将这样的伎俩:

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

这一直是最快的方式为我创造(多维)阵列之一。我不确定你是否希望你的所有结果都被吸入到一个数组中。

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

0

我最喜欢的是以下;

$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

如果你的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']; 
}