public function countAllResults(bool $reset = true, bool $test = false)
	{
		// ORDER BY usage is often problematic here (most notably
		// on Microsoft SQL Server) and ultimately unnecessary
		// for selecting COUNT(*) ...
		$orderBy = [];
		if (! empty($this->QBOrderBy))
		{
			$orderBy         = $this->QBOrderBy;
			$this->QBOrderBy = null;
		}

		$sql = ($this->QBDistinct === true)
			?
			$this->countString . $this->db->protectIdentifiers('numrows') . "\nFROM (\n" . $this->compileSelect() . "\n) CI_count_all_results"
			:
			$this->compileSelect($this->countString . $this->db->protectIdentifiers('numrows'));

		if ($test)
		{
			return $sql;
		}

		$result = $this->db->query($sql, $this->binds, false);

		if ($reset === true)
		{
			$this->resetSelect();
		}
		// If we've previously reset the QBOrderBy values, get them back
		elseif (! isset($this->QBOrderBy))
		{
			$this->QBOrderBy = $orderBy ?? [];
		}

		$row = (! $result instanceof ResultInterface)
			? null
			: $result->getRow();

		if (empty($row))
		{
			return 0;
		}

		return (int) $row->numrows;
	}
public function countAllResults(bool $reset = true, bool $test = false)
	{
		// ORDER BY usage is often problematic here (most notably
		// on Microsoft SQL Server) and ultimately unnecessary
		// for selecting COUNT(*) ...
		$orderBy = [];
		if (! empty($this->QBOrderBy))
		{
			$orderBy         = $this->QBOrderBy;
			$this->QBOrderBy = null;
		}

		$sql = ($this->QBDistinct === true)
			?
			$this->countString . $this->db->protectIdentifiers('numrows') . "\nFROM (\n" . $this->compileSelect() . "\n) CI_count_all_results"
			:
			$this->compileSelect($this->countString . $this->db->protectIdentifiers('numrows'));

		if ($test)
		{
			return $sql;
		}

		$result = $this->db->query($sql, $this->binds, false);

		if ($reset === true)
		{
			$this->resetSelect();
		}
		// If we've previously reset the QBOrderBy values, get them back
		elseif (! isset($this->QBOrderBy))
		{
			$this->QBOrderBy = $orderBy ?? [];
		}

		$row = (! $result instanceof ResultInterface)
			? null
			: $result->getRow();

		if (empty($row))
		{
			return 0;
		}

		return (int) $row->numrows;
	}
public function countAllResults ( bool $ reset = true , bool $ test = false ) { // ORDER BY usage is often problematic here (most notably // on Microsoft SQL Server) and ultimately unnecessary // for selecting COUNT(*) ... $ orderBy = [ ] ; if ( ! empty ( $ this -> QBOrderBy ) ) { $ orderBy = $ this -> QBOrderBy ; $ this -> QBOrderBy = null ; } $ sql = ( $ this -> QBDistinct === true ) ? $ this -> countString . $ this -> db -> protectIdentifiers ( 'numrows' ) . "\nFROM (\n" . $ this -> compileSelect ( ) . "\n) CI_count_all_results" : $ this -> compileSelect ( $ this -> countString . $ this -> db -> protectIdentifiers ( 'numrows' ) ) ; if ( $ test ) { return $ sql ; } $ result = $ this -> db -> query ( $ sql , $ this -> binds , false ) ; if ( $ reset === true ) { $ this -> resetSelect ( ) ; } // If we've previously reset the QBOrderBy values, get them back elseif ( ! isset ( $ this -> QBOrderBy ) ) { $ this -> QBOrderBy = $ orderBy ?? [ ] ; } $ row = ( ! $ result instanceof ResultInterface ) ? null : $ result -> getRow ( ) ; if ( empty ( $ row ) ) { return 0 ; } return ( int ) $ row -> numrows ; }
"Count All Results" query

Generates a platform-specific query string that counts all records
returned by an Query Builder query.

@param boolean $reset
@param boolean $test  The reset clause

@return integer|string when $test = true
Count All Results query