Frage

$result = $db_con->query("SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10");

$count_result = $db_con->query("SELECT FOUND_ROWS() as totalcount");
$row = $count_result->fetch_assoc();
$total = $row['totalcount'];

$ total hält 0 Rückkehr, obwohl das Ergebnis $ enthält alle Benutzer, Zeilen in ihm.

ini_set("mysql.trace_mode", "0");

fand ich über diese Einstellung aus über hier ein ähnlichen Q Suche, aber es hat nicht mein Problem zu beheben.

Wenn ich die 2 select-Anweisungen in meiner MySQL-Client verwenden, gibt es immer die richtige Zählung. Kann einfach nicht scheinen, um herauszufinden, wie es auf meiner PHP-Seite zum Laufen zu bringen.

PHP Version: 5.2.5 build 6 MySQL Version: 5.1.30

Hinweis: Der Code, den ich hier zur Verfügung gestellt wird, nicht auf meinem aktuellen Projekt verwendet werden, jedoch macht es das Problem veranschaulichen ich nicht in der Lage bin, die ist die Gesamtzahl abzurufen. Dieser Code, von dem, was ich über FOUND_ROWS gelesen habe (), sollte funktionieren, aber es funktioniert nicht.

War es hilfreich?

Lösung

Auf php.net fand ich jemand mit vielleicht dem gleichen Problem. Er spricht von einer Race-Bedingung, die auftreten könnten: php .net . Grundsätzlich er löst dieses Problem, indem sie vorübergehend in der Tabelle auf Kosten der Sperr Dinge zu verlangsamen.

Andere Tipps

LIMIT erforderlich FOUND_ROWS () korrekt funktionieren

zu machen

Fügen Sie eine Grenze für das Ende Ihrer Abfrage, dh.

SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

http: //dev.mysql .com / doc / refman / 5.0 / de / Informations functions.html # function_found-Reihen

FOUND_ROWS() - Für eine SELECT mit einer LIMIT-Klausel, die Anzahl der Zeilen, die gab es keine LIMIT-Klausel zurückgegeben würden

Ich bin mir nicht sicher, welche Datenbank-Bibliothek Sie verwenden, aber es sieht aus wie Sie die Anzahl der Zeilen in einer select-Anweisung in PHP aus einer MySQL-Datenbank zu zählen versuchen.

Haben Sie versucht, zu sehen, ob es mit dem eingebauten in MySQL-Datenbank-Funktionen in PHP funktioniert?

$count_result = mysql_query("SELECT COUNT(*) as totalcount FROM users");
$row = mysql_fetch_array($count_result);

$total = $row['totalcount'];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top