2011-05-17 53 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; 

檢查它...