Php 检查MYSQL查询是否为空
我想根据查询是否为null来设置if条件,并打印两个不同的表。下面是我的代码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'
$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状态