如何对空查询进行此条件查找?

时间:2011-06-21 23:49:03

标签: php

为清晰起见编辑: 首先让我说我是新手 - 好吧?

如果$ 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将发送 - 否则不会发送。

3 个答案:

答案 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)