我有一个查询,即检查来自两个不同表的数据,不过一切都很好。当我将查询粘贴到cPanel中时,结果显示如下所示:MySQL returned an empty result set (i.e. zero rows). (Query took 0.0005 sec)
但是,当我在php中计算查询时,它正在重新计算1而不是0,不知道为什么这里是我的Sql查询
SELECT mobile, emailid
FROM tbl_users
WHERE mobile =9653878051
AND emailid = 'rawat@gmail.com'
GROUP BY mobile
UNION ALL SELECT mobile, email
FROM tbl_addusr
WHERE mobile =9653878051
AND email = 'rawat@gmail
.com'
LIMIT 0 , 30我像这样计算它,我把sql结果存储在数据变量中
$result = mysql_num_rows($data);
echo count($result)>0?1:0; 结果是1而不是0
发布于 2016-10-19 09:23:20
你不需要数任何东西。mysql_num_rows给出了行数。
像这样使用:
$result = mysql_query($query);
echo mysql_num_rows($result);发布于 2016-10-19 09:17:42
mysql_num_rows -在结果中获取行数,而不是数组
描述
int mysql_num_rows (资源$result )从结果集中检索行数。此命令仅适用于返回实际结果集的语句,如SELECT或显示。若要检索受插入、更新、替换或删除查询影响的行数,请使用mysql_affected_rows()。
参数
结果正在评估的结果资源。这个结果来自对mysql_query()的调用。
返回值
在成功时结果集中的行数或失败时为FALSE的行数。
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query(" SELECT mobile, emailid
FROM tbl_users
WHERE mobile =9653878051
AND emailid = 'rawat@gmail.com'
GROUP BY mobile
UNION ALL SELECT mobile, email
FROM tbl_addusr
WHERE mobile =9653878051
AND email = 'rawat@gmail
.com'
LIMIT 0 , 30", $link);
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
echo $num_rows>0?1:0;//compare like this
?>检查http://php.net/manual/en/function.mysql-num-rows.php和http://php.net/manual/en/function.count.php文档
发布于 2016-10-19 09:18:22
1:停止使用mysql_*函数。使用mysqli或PDO代替。
2:使用SQL Count:count.asp
哦,是的,正如建议:不要使用像$aaaaaa这样的变量名称.像这样的名字对变量是什么只字未提,当您在几个月内重新打开项目时,您将无法理解您所做的任何事情。
https://stackoverflow.com/questions/40127057
复制相似问题