MySQLi - Clasificación de resultados
Hemos visto SQL SELECTcomando para obtener datos de la tabla MySQLi. Cuando selecciona filas, el servidor MySQLi es libre de devolverlas en cualquier orden, a menos que le indique lo contrario diciendo cómo ordenar el resultado. Pero ordena un conjunto de resultados agregando una cláusula ORDER BY que nombra la columna o columnas por las que desea ordenar.
Sintaxis
Aquí está la sintaxis SQL genérica del comando SELECT junto con la cláusula ORDER BY para ordenar los datos de la tabla MySQL:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
Puede ordenar el resultado devuelto en cualquier campo siempre que el archivo esté en la lista.
Puede ordenar los resultados en más de un campo.
Puede utilizar la palabra clave ASC o DESC para obtener el resultado en orden ascendente o descendente. Por defecto, es orden ascendente.
Puede utilizar la cláusula WHERE ... LIKE de la forma habitual para poner condición.
Usando la cláusula ORDER BY en el símbolo del sistema
Esto usará el comando SQL SELECT con la cláusula ORDER BY para obtener datos de la tabla MySQLi tutorials_inf.
Ejemplo
Pruebe el siguiente ejemplo, que devuelve el resultado en orden descendente.
[email protected]# 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 que todas las identificaciones estén enumeradas en orden descendente.
Usando la cláusula ORDER BY dentro de PHP Script
Puede usar una sintaxis similar de la cláusula ORDER BY en la función PHP mysqli_query(). Esta función se usa para ejecutar comandos SQL y luego otra función PHPmysqli_fetch_array() se puede utilizar para recuperar todos los datos seleccionados.
Ejemplo
Pruebe el siguiente ejemplo, que devuelve el resultado en orden descendente del autor del 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);
?>
La salida de muestra debería ser así:
Connected successfully
id name
4 ram
3 raghu
2 johar
1 sai