English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás a ordenar y mostrar datos de tablas MySQL en orden ascendente o descendente utilizando PHP.
ORDER BYLa cláusula puede combinarse conSELECTSe pueden combinar las cláusulas para ver los datos de la tabla ordenados por un campo específico. La cláusula ORDER BY permite definir el nombre del campo utilizado para la ordenación y la dirección de ordenación, ascendente o descendente.
La gramática básica de esta cláusula se puede presentar de la siguiente manera:
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
Vamos a usar la cláusula ORDER BY en la sentencia SELECT para realizar una consulta SQL, luego ejecutaremos la consulta mediante la función mysqli_query() de PHP para obtener datos ordenados. Considera la siguiente tabla persons en la base de datos de demostración:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
A continuación, se muestra el código PHP que selecciona todas las filas de la tabla persons,first_nameLos resultados se ordenan alfabéticamente por columnas.
<?php /* intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL. servidor con configuración predeterminada (usuario sin contraseña "root"); */ $link = mysqli_connect("localhost", "root", "", "demo"); //verificar la conexión if($link === false){ die("error: no se puede conectar. " . mysqli_connect_error()); } //intentar ejecutar la consulta SELECT con la cláusula ORDER BY $sql = "SELECT; * FROM personas ORDER BY nombre_primevo; if($result = mysqli_query($link, $sql)){ if(mysqli_num_rows($result) > 0){ echo \ echo \/ / echo \/ / echo \/tr>"; while($row = mysqli_fetch_array($result)){ echo \ echo \/td>"; echo \/td>"; echo \/td>"; echo \/td>"; echo \/tr>"; } echo \/table>"; //cerrar el conjunto de resultados mysqli_free_result($result); } else{ echo \ } } else{ echo "error: no se puede ejecutar $sql. " . mysqli_error($link); } //Cerrar conexión mysqli_close($link); ?>
<?php /* intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL. servidor con configuración predeterminada (usuario sin contraseña "root"); */ $mysqli = new mysqli("localhost", "root", "", "demo"); //verificar la conexión if($mysqli === false){ die("error: no se puede conectar. " . $mysqli;->connect_error); } //intentar seleccionar y ejecutar la consulta con cláusula ORDER BY $sql = "SELECT; * FROM personas ORDER BY nombre_primevo; if($result = $mysqli->query($sql)){ if($result->num_rows > 0){ echo \ echo \/ / echo \/ / echo \/tr>"; ->fetch_array()){ echo \ echo \/td>"; echo \/td>"; echo \/td>"; echo \/td>"; echo \/tr>"; } echo \/table>"; // Liberar la colección de resultados $result->free(); } else{ echo \ } } else{ echo "error: no se puede ejecutar $sql. " . $mysqli;->error; } //Cerrar conexión $mysqli->close(); ?>
<?php /* intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL. servidor con configuración predeterminada (usuario sin contraseña "root"); */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "); //establecer el modo de error PDO en excepción $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("error: no se puede conectar. " . $e;->getMessage()); } //intentar seleccionar y ejecutar la consulta try{ $sql = "SELECT; * FROM personas ORDER BY nombre_primevo; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo \ echo \/ / echo \/ / echo \/tr>"; - echo \ echo \/td>"; echo \/td>"; echo \/td>"; echo \/td>"; echo \/tr>"; } echo \/table>"; //Liberar la colección de resultados unset($result); } else{ echo \ } } catch(PDOException $e){ die("Error: No se puede ejecutar $sql. \->getMessage()); } //Cerrar conexión unset($pdo); ?>
Después de ordenar los resultados, la colección de resultados se mostrará como sigue:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 3 | Clark | Kent | [email protected] | | 5 | Harry | Potter | [email protected] | | 2 | John | Rambo | [email protected] | | 4 | John | Carter | [email protected] | | 1 | Peter | Parker | [email protected] | +----+------------+-----------+----------------------+
Consejo:Por defecto, la cláusula ORDER BY ordena los resultados en orden ascendente. Si desea ordenar los registros en orden descendente, puede usar la palabra clave DESC.