많은 데이터가있는 테이블이 있으므로 한 번에 한 페이지 씩 불러 와서 표시합니다 (내 테이블은 길어서 전체 테이블에서 실행할 수 없습니다).MySql이 제한없이 반환 한 결과 수를 얻는 방법은 무엇입니까?
그러나 결과에 페이지 매김을하고 싶습니다. 그래서 테이블에있는 요소의 총 개수를 알아야합니다.
동일한 요청에서 COUNT(*)
을 수행하면 선택한 요소의 수가 표시됩니다 (필자의 경우 10 개).
두 번째 요청에서 내 테이블에 COUNT(*)
을 수행하면 내 기본 쿼리에서 where, join 및 having 절이 있기 때문에 결과가 잘못되었을 수 있습니다.
하나의 솔루션이 될 것으로 보인다이 특정 요청에 대한 내 테이블에있는 요소의 최대 수를 알고 데이터를
에 가장 깨끗한 방법은 무엇입니까 Mysql function FOUND_ROWS :
나는 이것을 시도했다 : mysql_query perfo 실효 한 번에 쿼리 내 쿼리 결과를 반환하지 않습니다 반면
Array ([0] => 0)
: (here를 촬영)
$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM Users';
$result = mysql_query($query);
// fetching the results ...
$query = 'SELECT FOUND_ROWS()';
$ result = mysql_query($query);
// debug
while ($row = mysql_fetch_row($result)) {
print_r($row);
}
그리고 0 결과 배열을 얻었다.
내 접근 방식에 어떤 문제가 있습니까? 더 나은 해결책이 있습니까?
mysql_num_rows()? –
결과를 $ result 변수에 저장하지 않았습니다 ... – Vafliik
@MihaiIorga mysql_num_rows는 LIMIT 절의 영향을받습니다. 필자의 경우 10을 반환합니다. –