Php 如果多行中有相同的电子邮件地址,请保留所有要发送的邮件,然后发送一次

Php 如果多行中有相同的电子邮件地址,请保留所有要发送的邮件,然后发送一次,php,mysql,email,Php,Mysql,Email,好吧,我已经放弃玩我的代码,我已经用尽了所有的想法 我这里有一个简单的代码,可以向用户发送电子邮件,告知他们发送给我的域的状态。有时,一个用户发送多个域,我希望,与其为他们发送给我的每个域发送电子邮件,我只记录每个域的状态,然后发送一次 以下是我正在使用的代码: function is_url_alive($url) { $url = 'http://' . $url; $headers = @get_headers($url); if ($headers[0] == '

好吧,我已经放弃玩我的代码,我已经用尽了所有的想法

我这里有一个简单的代码,可以向用户发送电子邮件,告知他们发送给我的域的状态。有时,一个用户发送多个域,我希望,与其为他们发送给我的每个域发送电子邮件,我只记录每个域的状态,然后发送一次

以下是我正在使用的代码:

function is_url_alive($url) {
    $url = 'http://' . $url;
    $headers = @get_headers($url);
    if ($headers[0] == 'HTTP/1.1 200 OK') {
    echo 'alive';
    } else {
    echo 'down/not alive';
    }
}

while ($row = mysql_fetch_assoc($result)) :
    $to      = $row['email'];
    $subject = 'The Status of the URL you sent us';
    $message = 'hello! The domain ' . $row['url'] .' that you sent us, using automated system, was found out to be ' . is_url_alive($row['url']);
    mail($to, $subject, $message);
endwhile;
======================================================

如果要了解我的数据库的结构,请运行以下代码:

$result = mysql_query("SELECT * FROM domain_db ORDER BY email");

while ($row = mysql_fetch_assoc($result)) :
    print_r($row);
    echo '<br />';
endwhile;
从输出中可以看到,原始脚本必须发送7封电子邮件。但是,只需向每封电子邮件发送一封邮件,理想情况下只需发送两封电子邮件


提前感谢并提供更多功能。

使用电子邮件作为密钥将结果存储并分组到一个数组中

然后迭代该数组并为每个用户发送邮件

$users = array();
while ($row = mysql_fetch_assoc($result)) :
   $users[$row['email']][] = array('url' => $row['url'], 'result' => is_url_alive($row['url']));
endwhile;

foreach($users as $email => $urls) {
   .... send your mail here and implode the urls, results.. 
}

先生,通过电子邮件使用SELECT*FROM domain_db GROUP将输出减少到只有两个具有不同电子邮件地址的条目,其他行消失了,但是,我仍然需要处理其他条目。这意味着什么:“然后迭代那个数组”我昨天没有看到完全相同的问题吗?@PeeHaa是的,先生,因为这个原因已经12小时没睡觉了。今天可没那么有成效,呆头呆脑的。
$users = array();
while ($row = mysql_fetch_assoc($result)) :
   $users[$row['email']][] = array('url' => $row['url'], 'result' => is_url_alive($row['url']));
endwhile;

foreach($users as $email => $urls) {
   .... send your mail here and implode the urls, results.. 
}