Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ordenar resultados de operadores de asignacion

Estas en el tema de Ordenar resultados de operadores de asignacion en el foro de PHP en Foros del Web. Hola, lo mio creo que puede ser simple pero no doy en la tecla, tengo la siguente funcion: en donde se toma datos de categorias ...
  #1 (permalink)  
Antiguo 30/05/2013, 10:47
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 17 años
Puntos: 8
Ordenar resultados de operadores de asignacion

Hola, lo mio creo que puede ser simple pero no doy en la tecla, tengo la siguente funcion:

en donde se toma datos de categorias en arbol o cascada en donde cod=codigo y cods=codigo de la categoria en donde proviene esta última ej:
cod cods
001 0
002 001
003 001
004 002

en donde 002 y 003 son sub categorias de 001 y 004 es sub categoria de 002,
lo que intento mostrar es por ejemplo:

001>> 002>> 004>>

con mi función logro esto pero en sentido inverso 004>> 002>> 001>>

desde ya gracias por su tiempo

Código PHP:
function cadena_de_categorias($COD) {
    
$categorias=mysql_query("SELECT * FROM categorias WHERE cod='$COD' "$GLOBALS[cnx_SQL]);
        
$CAT=mysql_fetch_array($categorias);
        global 
$categorias_cadena;
        
$categorias_cadena.=$CAT[cod].'>>';
        if(
$CAT[cods]!='0') {    cadena_de_categorias($CAT[cods]); }
        return 
$categorias_cadena;
     } 
  #2 (permalink)  
Antiguo 30/05/2013, 10:53
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: Ordenar resultados de operadores de asignacion

falta mas codigo aqui.
para ayudarte deberias mostrar el codigo que llama a cadena_de_categorias()
  #3 (permalink)  
Antiguo 30/05/2013, 10:56
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 17 años
Puntos: 8
Respuesta: Ordenar resultados de operadores de asignacion

Cita:
Iniciado por enlinea777 Ver Mensaje
falta mas codigo aqui.
para ayudarte deberias mostrar el codigo que llama a cadena_de_categorias()

Código PHP:
$COD=004;
echo 
cadena_de_categorias($COD); 
en donde $COD es el código de la categoria final, muchas gracias por tu interés.
  #4 (permalink)  
Antiguo 30/05/2013, 11:02
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: Ordenar resultados de operadores de asignacion

JAJAJAJA

ya entendi tu codigo

ok, debes ordenar la cosulta con un "order by"
  #5 (permalink)  
Antiguo 30/05/2013, 11:07
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 17 años
Puntos: 8
Respuesta: Ordenar resultados de operadores de asignacion

Cita:
Iniciado por enlinea777 Ver Mensaje
JAJAJAJA

ya entendi tu codigo

ok, debes ordenar la cosulta con un "order by"
Creo que no pasa por ese punto dado que cada resultado de mi busqueda en mi db es único, osea no es un while, quizas mi función no sea adecuada para lograr lo que necesito, gracias por tu tiempo.
  #6 (permalink)  
Antiguo 30/05/2013, 11:10
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: Ordenar resultados de operadores de asignacion

ok, debes ordenar la cosulta con un "order by"
perdona no me hagas caso eso no serbiria
esto si:

Código PHP:
function cadena_de_categorias($COD) {
    
$categorias=mysql_query("SELECT * FROM categorias WHERE cod='$COD' "$GLOBALS[cnx_SQL]);
        
$CAT=mysql_fetch_array($categorias);
        global 
$categorias_cadena;
        
$categorias_cadena[]=$CAT[cod];
        if(
$CAT[cods]!='0') {    cadena_de_categorias($CAT[cods]); }
        
rsort($categorias_cadena);
        
$categorias_cadena=implode('>>',$categorias_cadena);
        return 
$categorias_cadena;
     } 
eso si
  #7 (permalink)  
Antiguo 30/05/2013, 12:00
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 17 años
Puntos: 8
Respuesta: Ordenar resultados de operadores de asignacion

Muchas gracias!!!

modifique un poco el código dado que no todos los cod son en orden correlativo numérico, (cambie rsort por krsort) sino que por cascada, y los nombres de las variables al final para evitar problemas, pero me sirvió perfecto, muchas muchas gracias.

el código por si para alguien es necesario es el siguiente:

Código PHP:
function cadena_de_categorias($COD) {
    
$categorias=mysql_query("SELECT * FROM categorias WHERE cod='$COD' "$GLOBALS[cnx_SQL]);
        
$CAT=mysql_fetch_array($categorias);
        global 
$categorias_cadena;
        
$categorias_cadena[]=$CAT[cod];
        if(
$CAT[cods]!='0') {    cadena_de_categorias($CAT[cods]); }
        
krsort($categorias_cadena);
        
$categorias_cadena_VER=implode('>>',$categorias_cadena);
        return 
$categorias_cadena_VER;
     } 

Etiquetas: asignacion, operadores, resultados, select, sql
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 01:02.