我是PhP的新手并且正在尝试编写一个代码,该代码将从db中的表中获取所有电子邮件,并将它们转换为电子邮件客户端中的BCC字段(我正在使用Outlook)。 Fisrt我创建了HTML代码。例如,如果选择的值是Partneri,那么我想从表格中获取所有类别为合作伙伴的电子邮件。
<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>
之后我创建了php文件,没有错误。我得到的结果只是选择值nothnig else出现。
<?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";
?>
任何帮助将不胜感激。提前致谢!
答案 0 :(得分:1)
您的代码中有一个小问题。它应该是$bccfiled.="," .$email;
,请注意.
之前的=
,否则您将在循环的每次迭代中覆盖变量内容。但更好的风格是将地址存储在一个数组中,然后implode()
将它们存储起来:implode(',',$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)));
?>
请注意,我没有对此进行测试,只需将其键入即可。但是当你研究它时,你应该明白这个想法。
答案 1 :(得分:0)
试试这个,
mysql_result($result,0,"EMAIL");
.....^
而不是
mysql_result($result,0,"email");
答案 2 :(得分:0)
您应该从$row=0;
而不是$row=1;
开始。否则,您将忽略从DB检索到的最后一行。