2011-10-20 1 views

답변

1

나는 mysql_num_rows도 유사 작품 내 자신의 함수를 작성 결국 : 또한 ads_fetch_row를 사용하여 행을 카운트를 다시 작성할 수 있지만 내가 필요한 것을 쉽게했다

function my_num_rows($result) { 
    ob_start(); // begin disable output from ads_result_all 
    (int)$number = ads_result_all($result); 
    ob_end_clean(); //close and clean the output buffer 
    ads_fetch_row($r1, 0); // reset the result set pointer to the beginning 
    if ($number >= 0){ 
     return $number; 
    } else { 
     return FALSE; 
    } 
} 

합니다. 큰 결과 집합을 사용하면 ads_result_all을 사용하면 성능이 저하 될 수 있습니다.

+0

재사용 가능한 코드를 좋아합니다! – Edgar

0

행을 가져올 때 계산해야합니다. 여기

당신 같은 계산의 예입니다 (이 KB 항목 070618-1888을 볼 수 있습니다)하거나 COUNT() 스칼라와 두 번째 쿼리를 실행 (가능한 경우로 제외 순서를 제안) 할 수 있습니다 이동합니다

$rStmt = ads_do ($rConn, "select id, name from table1"); 
$RowCount = 0; 
while (ads_fetch_row($rStmt)) 
{ 
    $id = ads_result ($rStmt, "id"); 
    $name = ads_result($rStmt, "name"); 
    echo $id . "\t" . $name . "\n"; 
    $RowCount++; 
} 
echo "RowCount:" . $RowCount . "\n"; 
+0

응답 해 주셔서 감사합니다. 그런 식으로 시도했지만 문제는 행을 계산 한 후 결과 포인터가 결과 집합의 끝에서 끝나고 다시 설정해야한다는 것입니다. 나는 내 대답에 게시 된 방법을 사용하여 끝났다. – MikeJerome