2013-05-05 46 views
0

我想知道你能否幫我弄清楚。我正在從數據庫中檢索值(特別是電子郵件),並且我想將它存儲在一個數組中。PHP:數組中的多個值

我的問題是,我不知道如何存儲多個值並單獨檢索它們,以便我可以通過電子郵件發送這些地址。我嘗試了下面的代碼,但它沒有奏效。

$email = "select * from student"; 
if ($p_address = mysql_query($email)) { 
    while($row = mysql_fetch_assoc($p_address)) { 
     $address = mysql_result($row, 0); 
    } 
} 

我的代碼所做的唯一一件事就是全部的郵件發送到一個地址,而單個地址在數據庫中的第一項。另請注意,發送到特定地址的電子郵件數量與數據庫中的地址數量相對應。

如果你可以幫忙,謝謝。

+1

看看這裏:http://stackoverflow.com/questions/6962771/whilerow-mysql-fetch-assocresult- how-to-foreach-row 'mysql_result'將[棄用](http://php.net/manual/en/function.mysql-result.php)。 – Daniel 2013-05-05 16:08:29

回答

2

嘗試

<?php 
$email = "select * from student"; 
if ($p_address=mysql_query($email)) 
{ 
    $address = array(); 
    while($row = mysql_fetch_assoc($p_address)) 
    { 
    $address[] = $row[fieldname]; 
    } 
    $all_address = implode(',', $address); 
} 
?> 
+0

嗨,我試過你的代碼,但我得到這個錯誤:「警告:mysql_result()期望參數1是資源,在65行給出的數組」。第65行是:「$ address [] = mysql_result($ row,0);」。 – banana 2013-05-05 16:38:25

+0

我把mysql_error()在第65行,我得到這個具體的錯誤:「注意:數組到字符串轉換在第65行」 – banana 2013-05-05 17:26:45

2

你可以做這樣的事情:

$addresses = array(); 
$query = mysql_query("select * from student"); 
while($row = mysql_fetch_assoc($query)) 
{ 
    $addresses[] = row; 
} 

foreach ($addresses as $address) 
{ 
    echo $address; // Or do what you want to do with each address 
} 
4

只是做

$email = "select * from student"; 
if ($p_address = mysql_query($email)) { 
    $address = array(); 
    while($row = mysql_fetch_assoc($p_address)) { 
     $address[] = mysql_result($row, 0); 
    } 
} 
print_r($address); 

使用它,你可以調用數組的值,如:

$address[0],$address[1],$address[2],$address[...] 

使用所有ADRESS在郵件功能使用:

$all_address = implode(',', $address); 
mail($all_address, $email_subject, $thankyou); 
+0

+1,因爲你添加了一個郵件()的例子 – NemoStein 2013-05-05 16:16:15

+0

嗨,我試過你的代碼,但我也得到這個錯誤:「警告:mysql_result()期望參數1是資源,第65行給出的數組」。第65行是:「$ address [] = mysql_result($ row,0);」。 – banana 2013-05-05 16:44:02

+0

我把MySQL_error()在第65行,我得到這個具體的錯誤:「注意:數組到字符串轉換在第65行」 – banana 2013-05-05 17:25:45

0

試試這個

$email = "select * from student"; 
if ($p_address = mysql_query($email)) 
{ 
    $address=array(); 
    while($row = mysql_fetch_assoc($p_address)) 
    { 
     $address[] = $row['your_column_name']; 
    } 
} 
+0

嗨。我認爲這對我有用。但是,它給出的輸出是字符串形式。我需要一個數組形式的輸出。你可以幫幫我嗎? – banana 2013-05-05 16:32:21

+0

只需鍵入$ address [] = $ row;
然後數組$地址的每一行將包含數據庫中的$ row數組 – 2013-05-05 17:14:17

+0

我在哪裏放置$ address [] = $ row;? – banana 2013-05-05 17:23:14