Foros del Web » Programando para Internet » PHP »

Cómo ordenar este array multidimensional?

Estas en el tema de Cómo ordenar este array multidimensional? en el foro de PHP en Foros del Web. Hola chicos, quiero mostrar en una página un catálogo, y quisiera que el usuario pueda ordenarlo , por ejemplo por: mayor precio - menor precio. ...
  #1 (permalink)  
Antiguo 29/05/2007, 15:26
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Pregunta Cómo ordenar este array multidimensional?

Hola chicos, quiero mostrar en una página un catálogo, y quisiera que el usuario pueda ordenarlo , por ejemplo por: mayor precio - menor precio.
Tengo la idea de que esto es más fácil con un array, pero no tengo idea de cómo hacer para ordenarlo por el campo "precio_lista".
Cómo sería?
Esta es mi consulta principal:

Código PHP:
$consulta mysql_query ("SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate"$conexion); 
Muchas Gracias!
  #2 (permalink)  
Antiguo 29/05/2007, 15:36
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Cómo ordenar este array multidimensional?

Código PHP:
$consulta mysql_query ("SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate ORDER BY (precio_lista) DESC"$conexion); 
Con eso tendrás tus registros ordenados por precio_lista en forma descendente (del mayor al menor), ¿eso es lo que necesitas?.
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #3 (permalink)  
Antiguo 29/05/2007, 15:40
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Re: Cómo ordenar este array multidimensional?

Gracias goc00, pero lo que necesito es que sea dinámico, es decir: que cuando el usuario elija de una lista la opción "Mayor Precio", me ordene el catalogo con precio_lista desc, y que cuando elija "Menor Precio", me ordene el catálogo con precio_lista ASC.
Como en mercadolibre.com
  #4 (permalink)  
Antiguo 29/05/2007, 15:52
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Re: Cómo ordenar este array multidimensional?

Gracias goc00!! me diste una idea, voy a usar el order by con un IF, y listo!!!
Código PHP:
            if ($ordenar == '1'){
                    
$catalogo mysql_query ("SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate order by precio_lista desc"$conexion);
                }
                else
                {
                        
$catalogo mysql_query ("SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate order by precio_lista asc"$conexion);
            
                } 
  #5 (permalink)  
Antiguo 29/05/2007, 15:58
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Cómo ordenar este array multidimensional?

Exactamente... me pillaste escribiéndote aquello ^^
(para que te quede mejor, que la página se autollame, así reordena los registros según lo que presiones).
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #6 (permalink)  
Antiguo 29/05/2007, 17:35
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: Cómo ordenar este array multidimensional?

Mejor si lo haces así:

Código PHP:
$orden $_POST['orden'];

$catalogo mysql_query ("SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate order by precio_lista ".$orden$conexion); 
Y en tu pagina puedes poner un formulario para que elijan la opción que quieran tal como este:

Código HTML:
<form id="form1" name="form1" method="post" action="prueba.php">
  <label> </label>
    <label><input type="radio" name="orden" value="asc" />Ascendente </label>
    <label><input type="radio" name="orden" value="desc" />Descendente</label>
  <label> </label>

  <input name="mostrar" value="Mostrar" type="submit" />
</form> 
O bien puedes usar el código que quieras, solo tienes que enviar a PHP la variable 'orden' con "asc" ó "desc", según elija el usuario.

Y si ya lo quieres hacer perfecto y protegerte de posibles intrusiones usa esto:
Código PHP:
$orden $_POST['orden']; 
$sql mysql_real_escape_string"SELECT id, nombre, id_marca, precio_lista, iva FROM articulos  where id_categoria = $id_cate order by precio_lista $orden"); 
$catalogo mysql_query$sql$conexion); 
Así evitaras que algún listillo te haga destrozas en tu base de datos.
  #7 (permalink)  
Antiguo 30/05/2007, 03:49
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Re: Cómo ordenar este array multidimensional?

Muchas gracias wrkjmg, voy a probar tu idea y despues les cuento!!
  #8 (permalink)  
Antiguo 30/05/2007, 07:44
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Re: Cómo ordenar este array multidimensional?

wrkjmg: funciona a la perfección!!

Gracias a los dos!!
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 23:08.