MySQLi - Classificação de resultados
Vimos SQL SELECTcomando para buscar dados da tabela MySQLi. Quando você seleciona linhas, o servidor MySQLi está livre para retorná-las em qualquer ordem, a menos que você instrua de outra forma dizendo como ordenar o resultado. Mas você classifica um conjunto de resultados adicionando uma cláusula ORDER BY que nomeia a coluna ou colunas pelas quais deseja classificar.
Sintaxe
Aqui está a sintaxe SQL genérica do comando SELECT junto com a cláusula ORDER BY para classificar os dados da tabela MySQL -
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
Você pode classificar o resultado retornado em qualquer campo, desde que o campo esteja listado.
Você pode classificar o resultado em mais de um campo.
Você pode usar a palavra-chave ASC ou DESC para obter o resultado em ordem crescente ou decrescente. Por padrão, é a ordem crescente.
Você pode usar a cláusula WHERE ... LIKE da maneira usual para colocar a condição.
Usando a cláusula ORDER BY no Prompt de Comando
Isso usará o comando SQL SELECT com a cláusula ORDER BY para buscar dados da tabela tutorials_inf do MySQLi.
Exemplo
Experimente o exemplo a seguir, que retorna o resultado em ordem decrescente.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_inf ORDER BY id desc;
+----+-------+
| id | name |
+----+-------+
| 4 | ram |
| 3 | raghu |
| 2 | johar |
| 1 | sai |
+----+-------+
4 rows in set (0.00 sec)
mysql>
Verifique se todos os IDs estão listados em ordem decrescente.
Usando a cláusula ORDER BY dentro do script PHP
Você pode usar uma sintaxe semelhante da cláusula ORDER BY na função PHP mysqli_query(). Esta função é usada para executar o comando SQL e posteriormente outra função PHPmysqli_fetch_array() pode ser usado para buscar todos os dados selecionados.
Exemplo
Experimente o exemplo a seguir, que retorna o resultado em ordem decrescente do autor do tutorial.
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '';
$dbname = 'TUTORIALS';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
if(! $conn ) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully</br>';
$sql = 'SELECT * from tutorials_inf ORDER BY id desc';
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<table>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>name</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_free_result($result);
} else {
echo "No records matching your query were found.";
}
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
mysqli_close($conn);
?>
O exemplo de saída deve ser assim -
Connected successfully
id name
4 ram
3 raghu
2 johar
1 sai