Foros del Web » Programando para Internet » PHP »

como orednar consultas

Estas en el tema de como orednar consultas en el foro de PHP en Foros del Web. Como puedo ordenar una consulta $result = mysql_query("SELECT d.Nombre,p.codigo FROM documento as d,permisos as p where p.login='$login' and d.Codigo=p.codigo"); Pero quiero ordenarlo dependiendo el codigo ...
  #1 (permalink)  
Antiguo 15/12/2006, 12:37
Avatar de blas9  
Fecha de Ingreso: septiembre-2006
Ubicación: en algun lugar
Mensajes: 55
Antigüedad: 17 años, 7 meses
Puntos: 0
como orednar consultas

Como puedo ordenar una consulta

$result = mysql_query("SELECT d.Nombre,p.codigo FROM documento as d,permisos as p
where p.login='$login' and d.Codigo=p.codigo");


Pero quiero ordenarlo dependiendo el codigo primero todos los documentos con codigo mc,pr,it,fo

MC
PR
IT
FO
  #2 (permalink)  
Antiguo 15/12/2006, 12:51
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Pregunta Re: como orednar consultas

Con order by

Código PHP:
$result mysql_query("SELECT d.Nombre,p.codigo FROM documento as d,permisos as p 
where p.login='$login' and d.Codigo=p.codigo order by p.codigo"
); 
Saludillos.
  #3 (permalink)  
Antiguo 15/12/2006, 13:08
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: como orednar consultas

Te conviene hacerte un case en el select y setear un campo "virtual" para luego ordenar por este, ej simple:

Código PHP:
$sql "
Select
    codigo
    (CASE codigo 
        WHEN 'MC' THEN 1
            WHEN 'PR' THEN 2 
            WHEN 'IT' THEN 3
            WHEN 'FO' THEN 4
    ELSE 0 END) orden
from
    tabla
order by 
    orden
"

PD: mauled, lo que vos decís no es correcto te dara:
FO
IT
MC
PR
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 02/01/2007, 12:02
Avatar de blas9  
Fecha de Ingreso: septiembre-2006
Ubicación: en algun lugar
Mensajes: 55
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: como orednar consultas

disculpa pero no le entiendo mucho es que soy primeriza en php y creo que el codigo anterior no es de php o si mmmm......
  #5 (permalink)  
Antiguo 02/01/2007, 13:43
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 6 meses
Puntos: 7
Re: como orednar consultas

Cita:
Iniciado por blas9 Ver Mensaje
disculpa pero no le entiendo mucho es que soy primeriza en php y creo que el codigo anterior no es de php o si mmmm......
El lenguaje es SQL, que es el que se utiliza para hacer consultas a la base de datos mysql. Aquí tienes una referencia a lo que comenta nicolaspar...

Me pierdo un poco en el funcionamiento concreto de lo que has puesto, nicolaspar ¿como pasa el valor a orden? ¿Puedes hacer una versión comentada?
  #6 (permalink)  
Antiguo 02/01/2007, 14:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: como orednar consultas

Es, como dice pintix, sql.
Lo que hace es un case para asignar, al alias orden puesto en el select, valores lógicos para poder ordenarlos. Luego ordena por el alias. Por ejemplo, si tenemos en la db esto:

codigo, nombre
FO | uno
IT | dos
MC | tres
PR | cuatro
FO | cinco
FO | seis
PR | siete

Lo que sacara la consulta esta será:
Código PHP:
$sql "
Select
    codigo,
    nombre,
    (CASE codigo 
        WHEN 'MC' THEN 1
            WHEN 'PR' THEN 2 
            WHEN 'IT' THEN 3
            WHEN 'FO' THEN 4
    ELSE 0 END) orden
from
    tabla
order by 
    orden, nombre
"
;  
$r mysql_query($sql);
while( 
$rs mysql_fetch_row$r ) ){
echo 
$rs[2].'|'.$rs[1].'|'.$rs[0];
}
/* Salida
1 | tres |  MC
2 | cuatro | PR
2 | siete | PR
3 |dos | IT
4 | cinco | FO
4 | seis | FO
4 |siete | FO
4 |uno | FO
*/ 
No se si se comprende lo que estoy tratando de hacer, trato nuevamente diciendo: Como los valores pr,mc,it,fo no tiene un patrón para el orden que desea obtener, lo que hago es mediante este case en el query, asignarle un valor a cada uno según el orden que quiera. Espero que se comprenda, sino vuelvo a tratar :P
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 03/01/2007, 13:22
Avatar de blas9  
Fecha de Ingreso: septiembre-2006
Ubicación: en algun lugar
Mensajes: 55
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: como orednar consultas

Pues muchas gracias antes que nada pero es uqe soy un poco ine`perta en esto de base de datos voy a tratar de entenderlo y gracias nuevamente por su respuesta ...
  #8 (permalink)  
Antiguo 17/01/2007, 12:57
Avatar de blas9  
Fecha de Ingreso: septiembre-2006
Ubicación: en algun lugar
Mensajes: 55
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: como orednar consultas

Perdon por la insistencia pero de verdad no he logrado hacerlo
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 21:55.