Question

$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 continue à renvoyer 0 même si le résultat $ contient toutes les lignes de l'utilisateur.

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

J'ai découvert ce paramètre en effectuant une recherche sur un Q similaire, mais cela n'a pas résolu mon problème.

Lorsque j'utilise les 2 instructions de sélection dans mon client MySQL, le nombre de résultats correct est toujours affiché. Je n'arrive pas à comprendre comment le faire fonctionner sur ma page php.

Version PHP: 5.2.5 build 6 Version MySQL: 5.1.30

Remarque: le code que j'ai fourni ici n'est pas utilisé dans mon projet actuel, mais il illustre bien le problème que je rencontre en raison de l'impossibilité de récupérer le nombre total. D'après ce que j'ai lu sur found_rows (), ce code devrait fonctionner, mais il ne fonctionne pas.

Était-ce utile?

La solution

Sur php.net, j'ai trouvé quelqu'un qui a peut-être le même problème. Il parle d'une situation de concurrence critique qui pourrait se produire: php .net . Fondamentalement, il résout ce problème en verrouillant temporairement la table au prix d'un ralentissement.

Autres conseils

LIMIT est requis pour que found_rows () fonctionne correctement

Ajoutez une limite à la fin de votre requête, c.-à-d.

SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

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

FOUND_ROWS () - Pour un SELECT avec une clause LIMIT, le nombre de lignes à renvoyer serait l'absence de clause LIMIT

.

Je ne suis pas sûr de la bibliothèque de base de données que vous utilisez, mais il semblerait que vous essayiez de compter le nombre de lignes dans une instruction select en php à partir d'une base de données mysql.

Avez-vous essayé de voir si cela fonctionnait avec les fonctions de base de données mysql intégrées dans php?

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

$total = $row['totalcount'];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top