Foros del Web » Programando para Internet » PHP »

¿Se puede alterar el orden del resultado de una consulta?

Estas en el tema de ¿Se puede alterar el orden del resultado de una consulta? en el foro de PHP en Foros del Web. Buenos dias, tardes, noches. Quisiera saber si puedo alterar el orden en que me imprime una consulta que hago desde php a mysql Tengo una ...
  #1 (permalink)  
Antiguo 04/02/2011, 00:12
 
Fecha de Ingreso: junio-2010
Mensajes: 56
Antigüedad: 14 años, 5 meses
Puntos: 3
Pregunta ¿Se puede alterar el orden del resultado de una consulta?

Buenos dias, tardes, noches.

Quisiera saber si puedo alterar el orden en que me imprime una consulta que hago desde php a mysql

Tengo una tabla de los usuarios registrados, cada una con una id, y estoy consultando para saber cuales son los 10 mas últimos (como un top 10). y el orden lógicamente es descendente.

pero quisiera que los usuarios por ejemplo con id 5 y el id 1, se mantengan siempre primeros, y los demás continúen con el orden normal.

Código:
    echo ' <ul>';
	foreach ($consulta as $datos)
	{
		echo '<li>'.$datos['usuario'].'</li>';
	}
    echo ' </ul>';
es posible hacer esto automáticamente modificando el código php?
por que no quisiera hacerlo manualmente, es decir, agregando en html a esos primeros usuarios y en la consulta excluir a los mismos (para que no aparezcan luego).

gracias de antemano.
  #2 (permalink)  
Antiguo 04/02/2011, 00:26
Avatar de iwexcoder  
Fecha de Ingreso: mayo-2009
Ubicación: San Carlos de Bariloche
Mensajes: 404
Antigüedad: 15 años, 5 meses
Puntos: 16
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

...haber por partes...

...para listar los ultimos 10 usuarios registrados de forma descendente tendrias que hacer un select asi...

Código PHP:
Ver original
  1. $ultimos="select * from tabla_usuarios order by ID desc limit 1,10";
  2. while($imprimir = mysql_fetch_array($ultimos) ) {
  3.  
  4.    echo $imprimir['usuario'];
  5.  
  6. }

...no entendi la segunda parte....por lo que entiendo quieres que los resultados salgan siempre asi...???

ID

5
4
3
2
1
...
10
9
8
7
6
__________________
iWexCoder.com - Programación - Desarrollo Movil - Programación Web www.iwexcoder.com
  #3 (permalink)  
Antiguo 04/02/2011, 00:40
 
Fecha de Ingreso: junio-2010
Mensajes: 56
Antigüedad: 14 años, 5 meses
Puntos: 3
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

gracias iwexcoder.

la consulta normalmente imprimiria esto:

Código:
id 10  -  usuario 10
id 9  -  usuario 9
id 8  -  usuario 8
id 7  -  usuario 7
id 6  -  usuario 6
id 5  -  usuario 5
id 4  -  usuario 4
id 3  -  usuario 3
id 2  -  usuario 2
id 1  -  usuario 1
lo que yo quisiera, es por ejemplo que el usuario con id 5 y el id 1 , siempre esten primeros , y los demas continuen con su orden

Cita:
id 1 - usuario 1
id 5 - usuario 5

id 10 - usuario 10
id 9 - usuario 9
id 8 - usuario 8
id 7 - usuario 7
id 6 - usuario 6
id 4 - usuario 4
id 3 - usuario 3
id 2 - usuario 2
  #4 (permalink)  
Antiguo 04/02/2011, 02:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

Para hacer eso, tal vez necesites un campo adicional en tu tabla donde determines el orden de importancia del usuario.

Ejemplo:
0 = poco importante
...
9 = muy importante

Entonces, el orden seria:

ORDER BY importancia DESC, id, DESC
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 04/02/2011, 14:37
 
Fecha de Ingreso: junio-2010
Mensajes: 56
Antigüedad: 14 años, 5 meses
Puntos: 3
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

ok Triby gracias.

creí que tal vez se podía hacer modificando el código php.
  #6 (permalink)  
Antiguo 04/02/2011, 18:34
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 10 meses
Puntos: 81
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

Usando código PHP lo dudo demasiado pero si con un poco de SQL sin necesidad de agregar ningún campo más. Sería así:

Como quieres que el usuario de id: 1 sea siempre primero y el de id: 5 sea segundo debes hacer estas consultas primero y unirlas mediante UNION ALL luego hacer el resto de la consulta obviando esos dos usuarios y unir esta consulta otra vez con UNION ALL. La cosa quedaría más o menos así:

Código:
$sql = "SELECT * tabla_usuarios WHERE id = 1 
        UNION ALL
        SELECT * tabla_usuarios WHERE id = 5
        UNION ALL
        SELECT * FROM tabla_usuarios WHERE id IN NOT (1, 5)  ORDER BY id DESC LIMIT 0, 10 ";
Espero que te sirva.
  #7 (permalink)  
Antiguo 09/02/2011, 18:34
 
Fecha de Ingreso: junio-2010
Mensajes: 56
Antigüedad: 14 años, 5 meses
Puntos: 3
Respuesta: ¿Se puede alterar el orden del resultado de una consulta?

Gracias a ambos, por el momento estoy probando la solucion de Triby, ahora probare la tuya Artificium.

gracias nuevamente.

Etiquetas: alterar, foreach, orden
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:59.