我正在尝试从电子邮件列表中仅获取域名。这就是我所拥有的:
$query = "SELECT DISTINCT substring_index(email, '@', -1)";
$query .= " FROM `mailer_lists`";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$sending_domain[] = $row['email'];
$_SESSION['sending_domain'] = $sending_domain;
}
基本上,它会检查mailer_lists以查找我要发送到的所有域。我想要的只是mailing_lists
表中的域,并将它们存储到会话的数组中。我在while循环中做错了什么,我不知道是什么。
答案 0 :(得分:2)
您想将其设置为在之外。
$sending_domain = array();
while($row = mysql_fetch_array($result)){
$sending_domain[] = $row['email'];
}
$_SESSION['sending_domain'] = $sending_domain;
答案 1 :(得分:1)
我无法检查您是否正确使用substring_index
,但假设您是...
$query = "SELECT DISTINCT substring_index(email, '@', -1) as email_domain";
$query .= " FROM `mailer_lists`";
$result = mysql_query($query) or die(mysql_error());
$sending_domain = array();
while($row = mysql_fetch_array($result)){
$sending_domain[] = $row['email_domain'];
}
$_SESSION['sending_domain'] = $sending_domain;
所以我做的改变......
as email_domain
放入查询中。 我认为前两个只是形式,但我对这种方式更加满意。第3步,将会话分配从循环中取出,才是真正重要的。它应该只在填充$sending_domain
时执行一次。