2016-08-18 1 views
4

Das Problem ist das Ergebnis der Ausgabe für meine Gesamtzahl der Zeilen nicht angezeigt. Meine eigentliche Code:holen mehrere wählen in PDO

<? 
$stmt = $dbh->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE mark=0 ORDER BY id ASC LIMIT 0, 15; SELECT FOUND_ROWS() as total;"); 
$stmt->execute(); 
if ($stmt->rowCount() > 0) 
{ 
?> 
<span>Number or rows: <? echo $stmt->total; ?></span> 
<? 
while($result = $stmt->fetch(PDO::FETCH_OBJ)) 
{ 
<?=$result->id;?> 
<?=$result->user;?> 
} 
?> 

Was ist der Grund, warum funktioniert nicht konnte, habe ich verpasst etwas?

+0

'$ stmt-> total' existiert nicht. – hjpotter92

Antwort

3

Sie können verwenden, um auf die nächsten Daten (die im Falle der Zählung) zuzugreifen. Zuerst holen Sie die gewünschten Zeilen. Dann erhalten Sie die Anzahl:

<?php 
$stmt = $dbh->prepare(" 
    SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE mark=0 ORDER BY id ASC LIMIT 0, 15; 
    SELECT FOUND_ROWS() as total; 
"); 

$stmt->execute(); 

$values = $stmt->fetchAll(PDO::FETCH_OBJ); 

$stmt->nextRowset(); // shift to the total 

$count = $stmt->fetchColumn(); // get the total 

?> 

<span>Number of rows: <? echo $count; ?></span> 

<?php 
if($count > 0) { 
    foreach($values as $v) { 
     // iterate fetched rows 
     echo $v->id; 
    } 
} 
?> 
+0

Arbeitete, Danke! – John