【发布时间】:2012-01-28 09:17:57
【问题描述】:
我有一个网站,用户可以通过电子邮件表单发布 qn 工作请求/添加。此数据也存储在 DB 中,位于表 jobadd 下,该表有一个名为 Kategori 的列。在这个kategori 我有一个名为“bygg”的行,工作请求/添加发布在下面。而且我还有一个名为“Länk”的列(我的“链接”语言),此列将有一个指向工作请求/添加的链接,因此当用户在电子邮件中获得此链接时,他们可以单击它以查看发布在线。
我还有第二个页面,公司可以在其中注册并选择适合他们的类别。在这种情况下,类别将是“Bygg & Anläggning”,因此该数据也存储在USERS 下的 DB 中。在此表中,我有一个名为 Kategori 的列和“Bygg & Anläggnig”行,该行将描述公司注册的类别。此外,在此表中,我有存储公司电子邮件地址的 email 列。
代码的工作方式如下:运行此脚本时,如果当天不早于jobadd->Kategori->Bygg 和链接,它将发送一个链接(最新的)。致USERS->Kategori->Bygg & Anläggning->email中的所有电子邮件。
所以这很好用(希望我的描述不难理解):
但我希望这段代码做的是发送所有链接,如果不是更早的那一天。
我试图移动和更改代码,我得到的最接近的是:Bygg 类别中的 4 个链接和电子邮件列中的 4 封电子邮件,结果是一封带有一个链接的电子邮件,第二封带有两个链接的电子邮件,第三封电子邮件有三个链接,第四封电子邮件有四个链接。我希望所有四封电子邮件都能收到所有四个链接。 如果只有一天之前的链接,我根本不希望脚本发送任何电子邮件。
就像现在一样,即使脚本找不到不超过一天的链接,它也会向 USERS 表下 email 列中的所有电子邮件发送一封空电子邮件。
//CONNECT TO MYSQL
$link=mysql_connect($mysqladd, $mysqluser, $mysqlpass, true) or die('Could not connect to database: ' . mysql_error());
//CONNECT TO DATABASE
mysql_select_db($databasename, $link) or die('Could not connect to table: ' . mysql_error());
$query="SELECT *, DATE_FORMAT(Time_of_Submission, '%Y/%m/%d') FROM jobadd WHERE Kategori='bygg' AND Time_of_Submission BETWEEN SYSDATE() - INTERVAL 1 DAY AND SYSDATE() ORDER BY ID DESC";
$query2="SELECT * FROM USERS WHERE Kategori='Bygg & Anläggning'";
$result=mysql_query($query);
$result2=mysql_query($query2);
$mailmessage = mysql_fetch_array($result);
$num=mysql_numrows($result);
$num=mysql_numrows($result2);
if (!mysql_query($query,$link))
{
die('Error: ' . mysql_error());
}
mysql_close($link);
$message .= $mailmessage['Länk']."\n";
$i=0;
while ($i < $num) {
$email=mysql_result($result2,$i,"email");
$fromemail = "no_reply@jobler.se";
$subject = "Det har kommit in en ny Tjänstförfrågan på Jobler.se som passar er profil (klicka på länken nedan)";
mail($email, $subject, $message, "From: $fromemail");
echo "Förfrågan skickad till följande E-post adresser:";
echo "<b><br>$email</b><hr><br>";
echo "<b><br>$message</b><hr><br>";
$i++;
}
【问题讨论】: