2011-05-14 70 views
1

我遇到一些問題,我想執行一條SQL語句並獲取記錄總數+所有記錄。PHP Zend - 執行獲取行集和記錄總數

$strSQL = "SELECT * FROM table WHERE ProjectID = 1 "; 
$stmt = $db->query($strSQL); 
$total = count($stmt->fetchAll()); 
while ($row = $stmt->fetch()){ 
    ..No More Record Shown here.. 
} 

但在while循環沒有更多的記錄後,我執行使用fetchall,我相信我需要回到第一行或某事,任何人都知道如何解決這一問題?

+1

與Asaph同意,你應該只是將它存儲在一個變量,並遍歷它。對於您的記錄總數,您可以僅回顯$ total。 – 2011-05-14 07:21:21

回答

2

您已經使用fetchAll()獲取了所有記錄。所以當你撥打fetch()時,沒有更多的記錄要讀取。嘗試將fetchAll()的返回值存儲在一個變量中並遍歷該變量。這樣的事情:

$strSQL = "SELECT * FROM table WHERE ProjectID = 1"; 
$stmt = $db->query($strSQL); 
$allRows = $stmt->fetchAll(); 
$total = count($allRows); 
foreach ($allRows as $row){ 
    // process each $row 
}