Pregunta

$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 sigue devolviendo 0 a pesar de que el resultado $ contiene todas las filas de usuario en él.

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

Descubrí esta configuración buscando una Q similar aquí, pero no resolvió mi problema.

Cuando uso las 2 instrucciones select en mi cliente MySQL, siempre genera el recuento correcto. Simplemente parece que no puedo entender cómo hacerlo funcionar en mi página php.

Versión PHP: 5.2.5 build 6 Versión de MySQL: 5.1.30

Nota: El código que proporcioné aquí no se está utilizando en mi proyecto real, sin embargo, ejemplifica el problema que tengo al no poder recuperar el recuento total. Este código, por lo que he leído sobre found_rows (), debería funcionar pero no funciona.

¿Fue útil?

Solución

En php.net encontré a alguien con quizás el mismo problema. Está hablando de una condición de carrera que podría ocurrir: php .net . Básicamente resuelve este problema bloqueando temporalmente la mesa a costa de ralentizar las cosas.

Otros consejos

LIMIT es necesario para que found_rows () funcione correctamente

Agregue un LÍMITE al final de su consulta, es decir.

SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

http: //dev.mysql .com / doc / refman / 5.0 / es / information-functions.html # function_found-rows

FOUND_ROWS () : para un SELECT con una cláusula LIMIT, el número de filas que se devolverían si no hubiera una cláusula LIMIT

No estoy seguro de qué biblioteca de base de datos está utilizando, pero parece que está tratando de contar el número de filas en una instrucción select en php desde una base de datos mysql.

¿Has intentado ver si funciona con las funciones de base de datos mysql incorporadas en php?

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

$total = $row['totalcount'];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top