Domanda

$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 continua a restituire 0 anche se il risultato $ contiene tutte le righe dell'utente al suo interno.

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

Ho scoperto questa impostazione cercando qui una Q simile, ma non ho risolto il mio problema.

Quando uso le 2 istruzioni select nel mio client MySQL, emette sempre il giusto conteggio. Non riesco proprio a capire come farlo funzionare sulla mia pagina php.

Versione PHP: 5.2.5 build 6 Versione MySQL: 5.1.30

Nota: il codice che ho fornito qui non viene utilizzato nel mio progetto reale, tuttavia, esemplifica il problema che sto riscontrando nel non riuscire a recuperare il conteggio totale. Questo codice, da quello che ho letto su found_rows (), dovrebbe funzionare ma non funziona.

È stato utile?

Soluzione

Su php.net ho trovato qualcuno con forse lo stesso problema. Sta parlando di una condizione di gara che potrebbe verificarsi: php .net . Fondamentalmente risolve questo problema bloccando temporaneamente la tabella al costo di rallentare le cose.

Altri suggerimenti

LIMIT è necessario per far sì che found_rows () funzioni correttamente

Aggiungi un LIMIT alla fine della tua query, ad es.

SELECT SQL_CALC_FOUND_ROWS * FROM users LIMIT 0,10;

http: //dev.mysql .com / doc / refman / 5.0 / it / informazioni-functions.html # function_found-file

FOUND_ROWS () - Per una SELECT con una clausola LIMIT, il numero di righe che verrebbero restituite se non ci fosse una clausola LIMIT

Non sono sicuro di quale libreria di database stai utilizzando, ma sembra che tu stia provando a contare il numero di righe in un'istruzione select in php da un database mysql.

Hai provato a vedere se funziona con le funzioni di database mysql integrate in php?

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

$total = $row['totalcount'];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top