为清晰起见编辑: 首先让我说我是新手 - 好吧?
如果$ query不为NULL,我正在尝试向用户发送电子邮件。我怎么做?我尝试了几种不同的方法,但我没有做对。我有:
$query = "SELECT * FROM events WHERE UserID='$UserID' AND ParentEventID IS NULL";
$result = mysql_query($query);
if ($result != "0") {
//Mail user if there are events:
$to = "example@example.com";
$subject = "New Events found!!";
$body = "Hi!";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
我想要实现的是,如果数据库从events
发回任何内容(如果ParentEventID
确实包含NULL
值的项目,那么IE将发送 - 否则不会发送。
答案 0 :(得分:2)
$ query只是一个字符串,直到你用它做某事,此时它将返回一个结果集或FALSE。 (或多或少) http://php.net/function.mysql-query
所以你需要执行查询,并测试返回值,即
//your condition needs to be determined here, i.e. length, or something
if ($query) {
//Mail user if there are events:
$to = "example@example.com";
$subject = "New Events found!!";
$body = "Hi!";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
}
编辑:经过进一步检查,如果您正在寻找有关所返回数据的具体信息,您需要对结果集采取行动并确定一个条件,以确定您是否需要发送电子邮件。
答案 1 :(得分:1)
您的代码将执行您希望它执行的操作。 $ query =“SELECT * FROM events WHERE UserID ='$ UserID'AND ParentEventID IS NULL” 将返回一个结果集,包括您需要循环的事件。
添加循环机制以完成结果并发送邮件
$query = "SELECT * FROM events WHERE UserID='$UserID' AND ParentEventID IS NULL";
$result = mysql_query($query);
while($row=mysql_fetch_array($result)){
//Mail user if there are events:
$to = "example@example.com";//will probably be like: $row['email']
$subject = "New Events found!!";
$body = "Hi!";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
}
这样你可以删除if!= 0部分,因为如果没有结果,循环将在它有机会执行之前自行终止。
答案 2 :(得分:0)
我认为您要检查字符串是否为空:
if($ query!= NULL)