Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 如何查找此sql查询的行数?_Php_Mysql - Fatal编程技术网

Php 如何查找此sql查询的行数?

Php 如何查找此sql查询的行数?,php,mysql,Php,Mysql,由于您使用的是较旧的mysql方法,因此在执行查询后可以使用: $common_query_string = "Select a.INC_KEY,a.STATE, a.FDID, a.INC_DATE, a.INC_NO, a.EXP_NO, concat(a.NUM_MILE,' ', a.STREET_PRE,' ', a.STREETNAME,' ', a.STREETTYPE,' ', a.STREETSUF, ' ',a.APT_NO,' ', a.CITY,' '

由于您使用的是较旧的mysql方法,因此在执行查询后可以使用:

$common_query_string = "Select a.INC_KEY,a.STATE, a.FDID, a.INC_DATE, a.INC_NO, a.EXP_NO, concat(a.NUM_MILE,' ', a.STREET_PRE,' ', a.STREETNAME,' ', a.STREETTYPE,' ',
          a.STREETSUF, ' ',a.APT_NO,' ', a.CITY,' ', a.STATE_ID,' ', a.ZIP5,' ', a.ZIP4) as address, a.latitude, a.longitude, 
          ( 3959 * acos( cos( radians($lat) ) * cos( radians( a.latitude ) )
          * cos( radians( a.longitude ) - radians($lon) ) 
          + sin( radians($lat) ) * sin( radians( a.latitude ) ) ) ) AS distance,
          a.INC_TYPE, a.FF_DEATH, a.OTH_DEATH, a.PROP_LOSS , a.CONT_LOSS,(b.CODE_DESCR) as INC_CODE_DESC, (d.CODE_DESCR) as CAUSE_CODE_DESC";


    $query = sprintf("$common_query_string ,'nfirs' as SOURCE
      From
        (Select * From incident
        Where latitude > '%s' And latitude < '%s' 
        And longitude > '%s' And longitude < '%s' %s) 
        As a , codelookup b,codelookup d
  Where a.INC_TYPE = b.code_value AND b.fieldid = 'INC_TYPE' 
  And  a.CAUSE_IGN  = d.code_value AND  d.fieldid = 'CAUSE_IGN'
      having distance < '%s'
       ", mysql_real_escape_string($minLat), mysql_real_escape_string($maxLat), mysql_real_escape_string($minLon), mysql_real_escape_string($maxLon), mysql_real_escape_string($query_condition), mysql_real_escape_string($radius));
旁注mysql_uu方法正在被弃用 我建议重构代码,使用推荐的或方法。您可以在这两种语言中执行相同类型的查询,但更新将使您能够使用面向对象样式的代码、准备好的语句,这些语句有助于提高可读性,并进一步保护代码不受SQL注入的影响

以下是与以下相同的计数语法:

直接在查询中更新计数 要直接在查询中获取总行数,可以使用MySQL:

提供查询结果所选的行数

mysql_num_rows($result); 
使用限制时获取总行数

如果您使用了LIMIT子句,但想知道不使用LIMIT子句可以得到多少行,请在查询中使用SQL\u CALC\u FOUND\u rows,然后选择SELECT FOUND\u rows

SELECT COUNT(*) FROM yourtable your join yourcondition;

SQL_CALC_FOUND_ROWS在此可能会有帮助。是否有其他方法,如查找SQL查询内的计数?是否有其他方法,如查找SQL查询内的计数?@JimBozZ,而不是选择count*FROM。。。?我从未听说过另一个答案中的SQL\u CALC\u FOUND\u行,但使用COUNT*之前我从未失败过。@NewFurniture SQL\u CALC\u FOUND\u ROWS返回表的完整计数,即使我们应用了限制,这就是差异所在
SELECT
    COUNT(*) AS `count`
FROM
    (Select * From incident Where latitude > '%s' And latitude < '%s' And longitude > '%s' And longitude < '%s' %s) As a, codelookup b,codelookup d
WHERE
    a.INC_TYPE = b.code_value AND b.fieldid = 'INC_TYPE' AND  a.CAUSE_IGN  = d.code_value AND  d.fieldid = 'CAUSE_IGN'
HAVING
    distance < '%s'
mysql_num_rows($result); 
SELECT COUNT(*) FROM yourtable your join yourcondition;
SELECT SQL_CALC_FOUND_ROWS FROM yourtable your join yourcondition 
   LIMIT 10;

SELECT FOUND_ROWS();
mysql_num_rows($result); 

SELECT COUNT(*) FROM yourtable your join yourcondition;

you have to use this :

 *$final_Query='select count(*)as count from ('.$query.')*

and palce this below
Where a.INC_TYPE = b.code_value AND b.fieldid = 'INC_TYPE' 
And  a.CAUSE_IGN  = d.code_value AND  d.fieldid = 'CAUSE_IGN'
having distance < '%s, mysql_real_escape_string($minLat), mysql_real_escape_string($maxLat), mysql_real_escape_string($minLon), mysql_real_escape_string($maxLon), mysql_real_escape_string($query_condition), mysql_real_escape_string($radius));