parameter - php mysql affected
Recuento MySQLi(*) siempre devuelve 1 (6)
Intento contar el número de filas en una tabla y pensé que esta era la forma correcta de hacerlo:
$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;
Pero los recuentos siempre devuelven (int)1
. Si utilizo la misma consulta en phpMyAdmin obtengo el resultado correcto. Se sienta en una tabla, así que probé también $count[0]
, pero eso devuelve NULL
.
¿Cuál es la forma correcta de hacer esto?
$ result-> num_rows; solo devuelve el número de filas afectadas por una consulta. Cuando realiza un recuento (*) en una tabla, solo devuelve una fila, por lo que no puede tener otro resultado que 1.
Esto funcionó bien para mí.
// Veh Pro Count
$query_tvp = "SELECT count(*) as total from submit";
if ($result_tvp = $mysqli->query("$query_tvp")) {
/* determine number of rows result set */
$total_tvp = $result_tvp->fetch_row();
$total_tvp = $total_tvp[''0''];
/* close result set */
$result_tvp->close();
}
echo "Total: $total_tvp";
Me parece más fácil de leer:
$result = $mysqli->query(''select count(*) as `c` from `table`'');
$count = $result->fetch_object()->c;
$result->free();
$mysqli->close();
echo "there are {$count} rows in the table";
No es que tenga nada contra las matrices ...
Para mí esto funciona, es cuando quieres contar elementos repetidos dentro de un registro.
Por ejemplo: cantidad de personas que marcan ''sí'' en un formulario.
tabla: usuarios
registrarse: votar
elemento de registro: sí / no
$sql_user = "SELECT COUNT(*) FROM users WHERE vote = ''yes''";
$result1 = $mysqli->query($sql_user);
$row1 = $result1->fetch_row();
$n_yes = $row1[''0''];
Siempre trate de hacer una búsqueda asociativa, de esa manera puede obtener fácilmente lo que quiere en el resultado de múltiples casos
Aquí hay un ejemplo
$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row[''cityCount'']." rows in table myCity.";
$result->close();
Tienes que buscar ese único registro, contendrá el resultado de Count ()
$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo ''#: '', $row[0];