我在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; ?>
感谢您帮助
echo intval($sfideRicevute);
或
echo (int) $sfideRicevute
两者都将值强制转换为整数0。在php"0"中,false、0、null都将以这种方式转换为int 0。
1,true和其他数字将保持其值,然而,我不知道这是否立即清楚:)
请查看http://php.net/manual/en/language.types.type-juggling.php了解更多信息。
从PHP文档中mysql_num_rows返回的内容:
成功时结果集中的行数,失败时为FALSE。
它应该返回0,如果不是,那么查询可能有问题。
还要注意,不建议使用这些mysql_函数,因为它们将从php中删除,请参阅http://nl3.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated
第二:您是否考虑过SQL注入,因为您将一个变量直接放入查询中,这也是不推荐的,对于上面链接中提到的替代方案来说也是不必要的。
您可以查看$sfideRicevute的值,如果为null,则显示0。
echo $sfideRicevute == null ? 0 : $sfideRicevute;