MYSQL行计数为NULL但我需要显示0

时间:2014-11-06 21:11:40

标签: php mysql

我在PHP中有一个简单的行数。 如果没有找到任何行,我需要$ sfideRicevute为' 0',但此查询不会返回任何内容。

PHP:

<?php
    $sql = "SELECT * FROM `match` WHERE show_id = $showid AND w02 = $id AND status = 'sfida'";

    if ($result = mysql_query ("$sql")){
        while ($row=mysql_fetch_array ($result)) {

?>
<? $sfideRicevute = mysql_num_rows($result); ?>
<? echo $sfideRicevute; ?>

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

echo intval($sfideRicevute);

echo (int) $sfideRicevute

两者都将值转换为整数0.在php&#39; 0&#39;,false,0,null将以这种方式全部转换为int 0。

1,真实和其他数字将保持其价值但是,我不知道是否立即清楚:)

请查看http://php.net/manual/en/language.types.type-juggling.php了解详情。

答案 1 :(得分:2)

从PHP文档中mysql_num_rows返回的内容:

  

成功时结果集中的行数,如果失败则为FALSE。

它应该返回0,如果它不是,那么查询可能有问题。

另请注意,建议不要使用这些mysql_函数,因为它们将从php中删除,请参阅http://nl3.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated

第二:您是否考虑过SQL注入,因为您直接将一个变量放入查询中,这也不是推荐的,而且不需要上面链接中提到的替代方案。

答案 2 :(得分:1)

您可以查看$ sfideRicevute的值是什么,如果它为null,则显示0。

echo $sfideRicevute == null ? 0 : $sfideRicevute;