Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查MYSQL查询是否为空_Php_Mysql - Fatal编程技术网

Php 检查MYSQL查询是否为空

Php 检查MYSQL查询是否为空,php,mysql,Php,Mysql,我想根据查询是否为null来设置if条件,并打印两个不同的表。下面是我的代码 $number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE emp_id='$userID' AND leave_category='Annual'

我想根据查询是否为null来设置if条件,并打印两个不同的表。下面是我的代码

$number_of_date= "SELECT SUM(number_of_date) AS number_of_date
                    FROM emp_leaves
                    WHERE emp_id='$userID'
                      AND leave_category='Annual'
                      AND apply_year='$year'";
$number_date = mysql_query ($number_of_date);

if (($number_date == 'NULL'))
{

    $result2 = "SELECT * FROM leave_info
                  WHERE employment_type='permanent'
                    AND leave_type='annual'";
    $sql2 = mysql_query ($result2);

    while($row = mysql_fetch_array($sql2)) {
       ?>
    <tr>
      <td><?php echo $row["leave_type"]?></td>
      <td><?php echo $row["leave_count"]?></td>
      </td></tr><?php }
}
else
{
    $sql = "SELECT * FROM emp_leaves
              WHERE emp_id='$userID'
                AND leave_category='Annual'
              ORDER BY leave_id DESC limit 1";
    $result = mysql_query ($sql);

    while($row = mysql_fetch_array($result)) {
    ?>
    <tr>
        <td><?php echo $row["leave_category"]?></td>
        <?php }?><?php
    while($row11 = mysql_fetch_array($number_date)) {
            ?>
            <td><?php echo $row11["number_of_date"]?></td><?php } } ?>
    </tr>
$number\u of_date=“选择SUM(number\u of_date)作为number\u of_date
来自emp_的叶子
其中emp_id=“$userID”
并离开_class='Annual'
并应用_year='$year';
$number\u date=mysql\u查询($number\u of\u date);
如果($number_date=='NULL'))
{
$result2=“从休假信息中选择*
何处就业_type='permand'
并留下"年报";;
$sql2=mysql\u查询($result2);
while($row=mysql\u fetch\u数组($sql2)){
?>
试试看

如果查询返回NULL,PHP通常会将其视为空

您还可以尝试is_null()

请注意,mysql函数已弃用,不推荐使用。 请改用MySQLi或PDO。请从以下查询中引用

试试看

    $number_of_date= "SELECT SUM(number_of_date) AS number_of_date
                      FROM   emp_leaves
                      WHERE  emp_id='$userID' AND
                             leave_category='Annual' AND
                             apply_year='$year'";

    $res_qry     = mysql_query($number_of_date) 
                  or 
                  die ('Invalid query :: <br/>'.$number_of_date.
                                       ' <br/>'.mysql_error());

    $rowqry      = mysql_fetch_assoc($res_qry);
    $number_date = $rowqry ['number_of_date'];
如果查询返回NULL,PHP通常会将其视为空

您还可以尝试is_null()

请注意,mysql函数已弃用,不推荐使用。 请改用MySQLi或PDO。请从以下查询中引用

您可以使用或php函数

if(设置($number\u日期))
if(空($number\u日期))

编辑

看一看

对于返回resultset的SELECT、SHOW、DESCRIBLE、EXPLAIN和其他语句,mysql_query()在成功时返回资源,在出错时返回FALSE

对于其他类型的SQL语句,如INSERT、UPDATE、DELETE、DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE

所以请试试这个

if(mysql\u查询($number\u of\u date))
或在代码中这样编辑

如果($number\u date==true))
您可以使用或php函数

if(设置($number\u日期))
if(空($number\u日期))

编辑

看一看

对于返回resultset的SELECT、SHOW、DESCRIBLE、EXPLAIN和其他语句,mysql_query()在成功时返回资源,在出错时返回FALSE

对于其他类型的SQL语句,如INSERT、UPDATE、DELETE、DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE

所以请试试这个

if(mysql\u查询($number\u of\u date))
或在代码中这样编辑


如果($number\u date==true))

检查查询是否执行或结果是否没有行

  if (!$number_date or count($number_date) < 1){
      if(mysql_error()){
          die('Invalid query: ' . mysql_error());
        }
    }
if(!$number\u日期或计数($number\u日期)<1){
if(mysql_error()){
die('无效查询:'.mysql_error());
}
}

mysql\u query($sql)
执行查询并返回结果,我们需要检查,如果条件
if($number\u date)
表示查询已执行,
if(!$number\u date)
表示查询未执行

检查是否执行查询或结果没有行

  if (!$number_date or count($number_date) < 1){
      if(mysql_error()){
          die('Invalid query: ' . mysql_error());
        }
    }
if(!$number\u日期或计数($number\u日期)<1){
if(mysql_error()){
die('无效查询:'.mysql_error());
}
}

mysql\u query($sql)
执行查询并返回结果,我们需要检查,查询是否执行,如果条件
if($number\u date)
表示查询已执行,
if(!$number\u date)
表示查询未执行

我假设您指的是行

if (($number_date == 'NULL'))
这将不起作用,因为您正在将变量
$number\u date
与字符串
'NULL'
进行比较,而不是与值
NULL
进行比较。为了测试
mysql\u查询($number\u of\u date)
是否返回
NULL
,您需要使用该函数,如下所示:


话虽如此,我还要说,出于许多非常好的原因,此API被弃用;请将您的代码迁移到使用或。这两个API都提供了准备好的语句,这些语句(除其他外)提供了一种保护措施。

我假设您指的是这一行

if (($number_date == 'NULL'))
这将不起作用,因为您正在将变量
$number\u date
与字符串
'NULL'
进行比较,而不是与值
NULL
进行比较。为了测试
mysql\u查询($number\u of\u date)
是否返回
NULL
,您需要使用该函数,如下所示:

话虽如此,我还要说,出于许多非常好的原因,此API被弃用;请将您的代码迁移到使用或。这两个API都提供了准备好的语句,这些语句(除其他外)提供了一种保护措施。

来自mysql\u query()

对于返回resultset的SELECT、SHOW、DESCRIBLE、EXPLAIN和其他语句,mysql_query()在成功时返回资源,在出错时返回FALSE

因此,您的检查
==“NULL”
是错误的。如果查询成功,函数将返回句柄;否则,函数将返回
FALSE
。您可以检查
!==FALSE
是否找到了某些内容。如果(!$number\u date)
正确,则此处使用
isset()
empty()
的任何其他答案都是正确的

另外,请注意,PHP中的mysql扩展已被弃用。。最好使用其他扩展,如来自mysql\u query()的。

对于返回resultset的SELECT、SHOW、DESCRIBLE、EXPLAIN和其他语句,mysql_query()在成功时返回资源,在出错时返回FALSE

因此,您的检查
==“NULL”
是错误的。如果查询成功,函数将返回句柄;否则,函数将返回
FALSE
。您可以检查
!==FALSE
是否找到了某些内容。如果(!$number\u date)
正确,则此处使用
isset()
empty()
的任何其他答案都是正确的


另外,请注意,PHP中的mysql扩展已被弃用。最好使用其他扩展,如。

很好,但仅在条件始终时执行,而不要转到else状态