Foros del Web » Programando para Internet » PHP »

Order by + php

Estas en el tema de Order by + php en el foro de PHP en Foros del Web. Alguién sabe si puede order en orden ascendente con php dentro de while la información que muestra con una consulta de mysql. Porque no quiero ...
  #1 (permalink)  
Antiguo 09/02/2009, 10:14
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 12 años, 1 mes
Puntos: 1
Order by + php

Alguién sabe si puede order en orden ascendente con php dentro de while la información que muestra con una consulta de mysql.

Porque no quiero utilizar el msyql order by, por que no me ordena como yo quiero que ordene, porque el campo es varchar, pero en php puedo separar solo el número

por ejemplo el campo muestra lo siguiente:

stz1-21
stz1-20
stz1-11
stz1-8

con php se que puedo extraer solo el número con esta funcion explode("-",stz1-21)

Luego quiero ordenar en orden ascendente 8,11,20,21...

por favor podrian decirme una función que puedo manejar como explode, dentro de una consulta mysql select, para poder sacar la consulta ordena.

Por favor ayúdenme gracias.
  #2 (permalink)  
Antiguo 09/02/2009, 10:47
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 12 años, 5 meses
Puntos: 5
Respuesta: Order by + php

mmm creo que lo ideal es que normalices la tabla y asignes una celda para esos valores numéricos.

Si no se puede, la unica forma es sacar todos los calores de la db y usando un for recorrer los datos y sacarlos en el orden que desees.
  #3 (permalink)  
Antiguo 09/02/2009, 18:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Order by + php

Cuando haces la consulta, haces primero un ciclo en el cuál guardas toda la fila devuelta en un array, asignándole como índice el valor numérico que has obtenido. Luego, usando ksort(), ordenas, y finalmente ciclas sobre ese array para procesar los datos:

Código php:
Ver original
  1. $datos = array()
  2. while($row = mysql_fetch_assoc($recurso)) {
  3.     $numero = explode('-', EL DATO QUE VAS A EXPLOTAR)
  4.     $datos[$numero[1]] = $row
  5. }
  6.  
  7. ksort($datos)
  8.  
  9. foreach($datos as $row) {
  10.     // Procesas normalmente
  11. }

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 08:11.