2011-05-17 56 views
2

我想将我的sql数据库中的数据存储到数组中。目前我有这个:从数组中存储数据

$query = mysql_query("SELECT * FROM `InspEmail` WHERE `Company` LIKE '$company'"); 

while($row = mysql_fetch_array($query)) 
    { 

     $inspector = $row['name']; 

    } 

问题是我有8行数据。我需要将来自该数据库的每个8个名称存储到一个数组中。当我尝试这个:

$inspector = array($row['name']); 

它不起作用。

+0

谢谢所有伟大的答案!完美的工作:) – Jason 2011-05-17 17:35:42

回答

3

你想要的是:

$inspector[] = $row['name']; 

这都将8名存储类似于数组:

array(
    [0] => name1 
    [1] => name2 
    [2] => name3 

) 
5

如果要将所有名称存储在数组中,则需要将该数组定义在while循环的范围之外并追加到该循环中。就像这样:

$nameArray = array(); 
while($row = mysql_fetch_array($query)) { 
    // Append to the array 
    $nameArray[] = $row['name']; 
} 
+0

从技术上说,你不必在循环外定义它。但是,我总是声明变量的迷,以便您可以记录它们。 – fafnirbcrow 2011-05-17 17:19:57

+0

你是对的!我经常忘记PHP让你追加到未初始化的数组。 – andrewmitchell 2011-05-17 17:22:29

+0

我希望theyd作出这个警告.. – Ascherer 2011-05-17 17:29:04

0

替换该行...

$inspector = $row['name']; 

...与此:

$inspector [] = $row['name']; 

之后,检查器数组包含所有名称。

1

很多很好的答案。但是,如果你这样做的时候,你可能想要写一个小功能:

mysql_field_array($sql, $fieldname) 
{ 
    $res = mysql_query($sql); 
    $a = array(); 
    while($row = mysql_fetch_array($res)) 
    { 
     $a[] = $row[$fieldname]; 
    } 
    mysql_free_result($res); 
    return $a; 
} 
0
$query = mysql_query("SELECT * FROM `InspEmail` WHERE `Company` LIKE '$company'"); 
$data = array(); 
while($row = mysql_fetch_array($query)) 
{ 
    $inspector[] = $row; 
} 
for($i=0;$i<mysql_num_rows($row);$i++) 
{ 
    $data = $inspector[$i]; 
} 
return $data; 

检查它...