Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: sheiking en 2 Marzo 2019, 02:08 am



Título: ordenar tabla
Publicado por: sheiking en 2 Marzo 2019, 02:08 am
hola que tal tengo una pequeña duda tengo una base de datos y en el programa hago que se muestre la tabla pero me gustaria añadirle un boton para ordenarlo segun id, genero y usuario pero la verdad no se como hacerlo llevo buscando soluciones y no se me ocurre nada :c aqui les adjunto el codigo
Código
  1.  
  2. <?php
  3.  
  4. $conexion=mysqli_connect('localhost','root','','actividad 7');
  5.  
  6. ?>
  7.  
  8.  
  9. <!DOCTYPE html>
  10. <html>
  11. <head>
  12. <title>mostrar datos</title>
  13. </head>
  14. <body>
  15.  
  16. <br>
  17.  
  18. <table border="1" >
  19. <tr>
  20. <td>id</td>
  21. <td>genero</td>
  22. <td>nombre</td>
  23. <td>color</td>
  24. <td>comida</td>
  25. </tr>
  26.  
  27. <?php
  28. $sql="SELECT * from personas";
  29. $result=mysqli_query($conexion,$sql);
  30.  
  31. while($mostrar=mysqli_fetch_array($result)){
  32. ?>
  33.  
  34. <tr>
  35. <td><?php echo $mostrar['id'] ?></td>
  36. <td><?php echo $mostrar['genero'] ?></td>
  37. <td><?php echo $mostrar['nombre'] ?></td>
  38. <td><?php echo $mostrar['color'] ?></td>
  39. <td><?php echo $mostrar['comida'] ?></td>
  40. </tr>
  41. <?php
  42. }
  43. ?>
  44.                <?php
  45.  
  46.  
  47.                ?>
  48. </table>
  49.  
  50. </body>
  51. </html>
  52.  


Título: Re: ordenar tabla
Publicado por: srWhiteSkull en 7 Marzo 2019, 00:01 am
Con Ajax quedaría bien pero en vista de tus pobres conocimientos te recomiendo que lo hagas en plan fácil, pon en la cabecera de la tabla, en la cual usas tr en vez th, a cada campo del título pones un vínculo, etiqueta HTML a, y el vínculo que apunte a la página Php que muestras pero le pasas un parámetro por ejemplo así :

Código
  1. ...
  2. <th><a href="https://mipagina/tabla?ordenar=id">Id</a></th>
  3. <th><a href="https://mipagina/tabla?ordenar=nombre">Nombre</a></th>
  4. <th><a href="https://mipagina/tabla?ordenar=genero">Género</a></th>
  5. ...

y luego en Php lo despachas con una consulta MySQL en base al parámetro.

https://www.w3schools.com/php/php_superglobals.asp


Título: Re: ordenar tabla
Publicado por: mchojrin en 21 Abril 2019, 00:07 am
Lo que necesitas es agregar al final de tu SQL una cláusula de ordenamiento.

En lugar de:

Código:
$sql="SELECT * from personas";

Algo como:

Código:
$sql="SELECT * from personas ORDER BY nombre";

Combinando con la respuesta de @srWhitSkull lo que harías sería algo como:

Código:
$orden = in_array( $_GET['ordenar'], [ 'id', 'nombre', 'genero' ] ) ? $_GET['ordenar'] : 'id'; // Por seguridad

$sql="SELECT * from personas ORDER BY $orden";

Saludos