una tiene tabla saber registros numero mostrar filas devuelve cuantos contar consulta como columnas php mysql

tiene - numero de filas php mysqli



¿Cómo puedo contar los números de filas que devolvió una consulta mysql? (8)

Obtención de filas totales en un resultado de consulta ...

Podrías simplemente iterar el resultado y contarlos. No dice qué idioma o biblioteca de cliente está utilizando, pero la API sí proporciona una función mysql_num_rows que le puede indicar el número de filas en un resultado.

Esto se expone en PHP, por ejemplo, como la función mysqli_num_rows . A medida que ha editado la pregunta para mencionar que está usando PHP, aquí hay un ejemplo simple que usa las funciones de mysqli:

$link = mysqli_connect("localhost", "user", "password", "database"); $result = mysqli_query($link, "SELECT * FROM table1"); $num_rows = mysqli_num_rows($result); echo "$num_rows Rows/n";

Obtener un recuento de filas que coinciden con algunos criterios ...

Solo use COUNT (*) - vea Contar filas en el manual de MySQL. Por ejemplo:

SELECT COUNT(*) FROM foo WHERE bar= ''value'';

Obtener filas totales cuando se utiliza LIMIT ...

Si usó una cláusula LIMIT pero quiere saber cuántas filas obtendría sin ella, use SQL_CALC_FOUND_ROWS en su consulta, seguido de SELECT FOUND_ROWS();

SELECT SQL_CALC_FOUND_ROWS * FROM foo WHERE bar="value" LIMIT 10; SELECT FOUND_ROWS();

Para tablas muy grandes, esto no va a ser particularmente eficiente, y es mejor ejecutar una consulta más simple para obtener un conteo y almacenarlo en caché antes de ejecutar sus consultas para obtener páginas de datos.

¿Cómo puedo contar los números de filas que devolvió una consulta mysql? utilizando PHP ..


Como lo es en 2015, y en desuso de la funcionalidad mysql_* , esta es una visualización solo para PDO .

<?php // Begin Vault (this is in a vault, not actually hard-coded) $host="hostname"; $username="GuySmiley"; $password="thePassword"; $dbname="dbname"; // End Vault $b=''</br>''; try { $theCategory="fruit"; // value from user, hard-coded here to get one in $dbh = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // prepared statement with named placeholders $stmt = $dbh->prepare("select id,foodName from foods where category=:theCat and perishable=1"); $stmt->bindParam('':theCat'', $theCategory, PDO::PARAM_STR,20); $stmt->execute(); echo "rowCount() returns: ".$stmt->rowCount().$b; // See comments below from the Manual, varies from driver to driver $stmt = $dbh->prepare("select count(*) as theCount from foods where category=:theCat and perishable=1"); $stmt->bindParam('':theCat'', $theCategory, PDO::PARAM_STR,20); $stmt->execute(); $row=$stmt->fetch(); // fetches just one row, which is all we expect echo "count(*) returns: ".$row[''theCount''].$b; $stmt = null; // PDO closes connection at end of script } catch (PDOException $e) { echo ''PDO Exception: '' . $e->getMessage(); exit(); } ?>

Esquema para la prueba

create table foods ( id int auto_increment primary key, foodName varchar(100) not null, category varchar(20) not null, perishable int not null ); insert foods (foodName,category,perishable) values (''kiwi'',''fruit'',1),(''ground hamburger'',''meat'',1), (''canned pears'',''fruit'',0),(''concord grapes'',''fruit'',1);

Para mi implementación, obtengo la salida de 2 para los dos echos anteriores. El propósito de las 2 estrategias anteriores es determinar si la implementación del controlador emite el rowCount y, en caso contrario, buscar una estrategia de recuperación.

Del Manual sobre PDOStatement::rowCount :

PDOStatement :: rowCount () devuelve el número de filas afectadas por una sentencia DELETE, INSERT o UPDATE.

For most databases , PDOStatement :: rowCount () no devuelve el número de filas afectadas por una instrucción SELECT. En su lugar, use PDO :: query () para emitir una instrucción SELECT COUNT (*) con los mismos predicados que su declaración SELECT deseada, luego use PDOStatement :: fetchColumn () para recuperar el número de filas que se devolverán. Su aplicación puede realizar la acción correcta.


En el caso de que tenga que resolver el problema con SQL simple, puede usar una subconsulta.

select count(*) from (select * from foo) as x;


Si desea el resultado más el número de filas devueltas, haga algo como esto. Utilizando PHP.

$query = "SELECT * FROM Employee"; $result = mysql_query($query); echo "There are ".mysql_num_rows($result)." Employee(s).";


Si está obteniendo datos con Wordpress, puede acceder a la cantidad de filas devueltas con $ wpdb-> num_rows:

$wpdb->get_results( $wpdb->prepare(''select * from mytable where foo = %s'', $searchstring)); echo $wpdb->num_rows;

Si desea un recuento específico basado en una consulta de recuento de mysql, haga lo siguiente:

$numrows = $wpdb->get_var($wpdb->prepare(''SELECT COUNT(*) FROM mytable where foo = %s'', $searchstring ); echo $numrows;

Si está ejecutando actualizaciones o eliminaciones, el recuento de filas afectadas se devuelve directamente desde la llamada a la función:

$numrowsaffected = $wpdb->query($wpdb->prepare( ''update mytable set val=%s where myid = %d'', $valuetoupdate, $myid));

Esto se aplica también a $ wpdb-> update y $ wpdb-> delete.


Si su consulta SQL tiene una cláusula LIMIT y desea saber cuántos resultados hay en ese conjunto de datos, puede usar SQL_CALC_FOUND_ROWS seguido de SELECT FOUND_ROWS(); Esto devuelve el número de filas MUCHO más eficientemente que usando COUNT(*)
Ejemplo (directamente de los documentos de MySQL):

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name -> WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();


Suponiendo que esté utilizando las funciones mysql_ o mysqli_, su pregunta ya debería haber sido respondida por otros.

Sin embargo, si está utilizando PDO, no hay una función fácil para devolver el número de filas recuperadas por una declaración de selección, por desgracia. Debe usar count () en el conjunto de resultados (después de asignarlo a una variable local, normalmente).

O si solo está interesado en el número y no en los datos, PDOStatement :: fetchColumn () en su resultado SELECT COUNT (1) ...


SELECT SQL_CALC_FOUND_ROWS * FROM table1 WHERE ...; SELECT FOUND_ROWS();

FOUND_ROWS() debe llamarse inmediatamente después de la consulta.