Como contar registros de uma tabela MySQL com PHP



Neste tutorial vamos mostrar duas maneiras para contar o número de registros de uma tabela MySQL utilizando o PHP.

MySQL é um sistema de gerenciamento de banco de dados, que utiliza a linguagem SQL como interface. É atualmente um dos sistemas de gerenciamento de bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. Wikipédia

Considerando uma tabela de um banco de dados MySQL, podemos obter o número total de registros utilizando a função count() para as extensões PDO e MySQLi e os métodos rowCount() para PDO e mysqli_num_rows() para MySQLi. Como exemplo, vamos utilizar a tabela MySQL abaixo, onde temos 17 registros:

Contar número de registros de uma tabela com a função count(*)

$sql = "SELECT count(*) as t FROM tabela";

Onde: a variável t substitui a função count(*) e tabela é o nome da sua tabela no banco de dados.

Atenção: Procure utilizar sempre a função count(*) para contar os registros de uma tabela MySQL, pelos seguintes motivos:

  • Desta forma o PHP trafegará apenas em uma linha e não todos os dados da tabela. Isto faz uma diferença enorme.
  • O PHP não precisará fazer nenhuma operação de contagem, apenas obtém o número total de registros do cache do banco de dados que já tem esta informação.

Nos exemplos a seguir utilizaremos nossa tabela de exemplo denominada de historico.

Exemplo utilizando a extensão PDO (PHP Data Objects)

<?php
require 'con_pdo.php'; // $pdo é a variável de conexão

echo '<h1>Médodo 1</h1>';
$total = 0;
$n = 1;
$sql = "SELECT count(*) as t FROM historico";
$sql = $pdo->query($sql);
$sql = $sql->fetch();
$total = $sql['t'];

echo 'O número de registros da tabela "historico" é: <b>'.$total.'</b>';

$sql = "SELECT id FROM historico";
$sql = $pdo->query($sql);

echo '<br><br>Veja abaixo a relação de ids de todos registros:';
foreach ($sql->fetchAll() as $row) {
    echo "<br>";
    echo "item ".$n;
    echo " - id = ".$row['id'];
    $n++;
}
echo '<hr>';

Exemplo utilizando a extensão MySQLi

<?php
require 'con_mysqli.php'; // $mysqli é a variável de conexão

echo '<h1>Médodo 2</h1>';
$total = 0;
$n = 1;
$sql = "SELECT count(*) as t FROM historico";
$sql = $mysqli->query($sql);
$sql = $sql->fetch_assoc();
$total = $sql['t'];

echo 'O número de registros da tabela "historico" é: <b>'.$total.'</b>';

$sql = "SELECT id FROM historico";
$sql = $mysqli->query($sql);

echo '<br><br>Veja abaixo a relação de ids de todos registros:';
while ($row = mysqli_fetch_assoc($sql)) {
    echo "<br>";
    echo "item ".$n;
    echo " - id = ".$row['id'];
    $n++;
}
echo '<hr>';

Contar número de registros com os métodos: rowCount() para a extensão PDO e num_rows para a extensão MySQLi

$sql = "SELECT * FROM tabela";

Onde: o "*" equivale a todos os registros e tabela é o nome da sua tabela no banco de dados.

ATENÇÃO: Quando você executa o SELECT * FROM tabela, em termos de performance você precisa esperar o banco carregar todos os dados e entregar ao PHP. Só então o PHP fará a contagem de dados.

Nos exemplos a seguir utilizaremos nossa tabela de exemplo denominada de historico.

Exemplo utilizando a extensão PDO (PHP Data Objects) - método rowCount()

<?php
require 'con_pdo.php'; // $pdo é a variável de conexão

echo '<h1>Médodo 3</h1>';
$total = 0;
$n = 1;
$sql = "SELECT * FROM historico";
$sql = $pdo->query($sql);
$total = $sql->rowCount();


echo 'O número de registros da tabela "historico" é: <b>'.$total.'</b>';

$sql = "SELECT id FROM historico";
$sql = $pdo->query($sql);

echo '<br><br>Veja abaixo a relação de ids de todos registros:';
foreach ($sql->fetchAll() as $row) {
    echo "<br>";
    echo "item ".$n;
    echo " - id = ".$row['id'];
    $n++;
}
echo '<hr>';

Exemplo utilizando a extensão MySQLi - método num_rows

<?php
require 'con_mysqli.php'; // $mysqli é a variável de conexão

echo '<h1>Médodo 4</h1>';
$total = 0;
$n = 1;
$sql = "SELECT * FROM historico";
$sql = $mysqli->query($sql);
$total = $sql->num_rows;

echo 'O número de registros da tabela "historico" é: <b>'.$total.'</b>';

$sql = "SELECT id FROM historico";
$sql = $mysqli->query($sql);

echo '<br><br>Veja abaixo a relação de ids de todos registros:';
while ($row = mysqli_fetch_assoc($sql)) {
    echo "<br>";
    echo "item ".$n;
    echo " - id = ".$row['id'];
    $n++;
}
echo '<hr>';

Veja abaixo o resultado para ambas as 4 formas utilizadas para contar número dos registros:

 Nota: Para saber mais sobre as diferenças entre as extensões PDO e MySQLi veja Diferenças – MySQLi versus PDO versus MySQL.

Documentação Oficial

1. [Extensão PDO] » Manual sobre PDO - PHP Data Objects.

2. [Extensão MySQLi] » Manual sobre a extensão MySQLi.

3. [count()] » Função count().

4. [rowCount() - PDO Statment] » método rowCount() disponível na extensão PDO.

5. [num_rows - MySQLi] » método num_rows disponível na extensão MySQLi.

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO