Php 从数据库中获取电子邮件地址并将其发送到所有地址

Php 从数据库中获取电子邮件地址并将其发送到所有地址,php,html,Php,Html,我是PhP新手,正在尝试编写一个代码,可以从db中的表中获取所有电子邮件,并将它们写入电子邮件客户端的BCC字段(我正在使用Outlook)。 首先,我创建了HTML代码。例如,若选择的值是Partneri,那个么我想从类别为Partner的表中获取所有电子邮件 <select name="email"> <option value="Uposlenik"> Uposlenici <br/> <option value="Partner"> Pa

我是PhP新手,正在尝试编写一个代码,可以从db中的表中获取所有电子邮件,并将它们写入电子邮件客户端的BCC字段(我正在使用Outlook)。 首先,我创建了HTML代码。例如,若选择的值是Partneri,那个么我想从类别为Partner的表中获取所有电子邮件

<select name="email">
<option value="Uposlenik"> Uposlenici  <br/>
<option value="Partner"> Partneri  <br/>
<option value="Limari Montazeri"> Limari montažeri  <br/>
<option value="Gradjevinske firme"> Građevinske firme <br/> 
<option value="Krovopokrivacke firme"> Krovopokrivačke firme <br/>
<option value="Preradzivaci lima"> Preradživači lima <br/>
<option value="Limarske radionice"> Limarske radionice  <br/>
<option value="Stovarista-Trgovci"> Stovarišta-Trgovci
</select>

乌波斯尼基
Partneri
利马里蒙塔泽里
格拉埃文斯克公司
Krovopokrivačke firme
普雷拉德živači利马
Limarske radionice
斯托瓦里什塔·特尔戈维奇
在这之后,我创建了php文件,并且没有出现任何错误。我得到的结果只是选择值,没有其他显示

<?php
$host="localhost"; // Host name
$username="***"; // username
$password="***"; // password
$database="***"; // Database name
$tbl_name="clanovi"; // Table name

$link=mysql_connect("$host", "$username", "$password");
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db("$database");
if (!$db_selected) {
    die ('db is not selected : ' . mysql_error());
}
$kategorija=$_POST['email'];
//check post
echo $kategorija;

$query= "SELECT  `EMAIL` FROM `clanovi` WHERE `KATEGORIJA`='$kategorija'";

$result=mysql_query($query) or die ("Error, query failed!");
mysql_close($link);

$row=1;
$numrows=mysql_num_rows($result);
$bccfield="Bcc:".mysql_result($result,0,"email");
while($row<$numrows)
{
$email=mysql_result($result, $row,"email");
$bccfiled="," .$email;
$row++;
Print "<a href=mailto:test@test.com?bcc=".$bccfield." /> "  ; 
}
$bccfield .="\r\n";
?>
试试这个

mysql_result($result,0,"EMAIL");
                    .....^
而不是

mysql_result($result,0,"email");

您的代码中有一个小故障。它应该是
$bccfiled.=“,”$email
,请注意
=
之前的
,否则将覆盖循环每次迭代中的变量内容。但更好的方式是将地址存储在一个数组中,然后像这样
内爆()
它们:
内爆(',',$bccfields)

因此,脚本的下半部分应该是这样的:

<?php
// ...

$query= "SELECT  `EMAIL` FROM `clanovi` WHERE `KATEGORIJA`='$kategorija'";
$result=mysql_query($query) or die ("Error, query failed!");

while(FALSE!==($row=mysql_fetch_assoc($result))) {
  $bccfields[] = $row['EMAIL'];
}
echo sprintf("<a href=mailto:test@test.com?bcc=%s />\n", 
             urlencode(implode(',',$bccfields))); 
?>


注意,我没有测试这个,只是把它打下来。但是你应该在学习的时候得到这个想法

您应该从
$row=0开始而不是
$row=1。否则,您将忽略从数据库中检索到的最后一行。

为了将来的参考,请不要粘贴您的用户名和密码!好的,谢谢你的建议脚本中有很多很多问题需要解决。我们无法为您解决这一切。我们所能做的就是给你指出正确的方向。看一看我在回答中添加的脚本片段,这应该会引导您走向正确的方向。阿卡斯卡非常感谢您。你让我走上了正轨,我已经解决了这个问题。。