Foros del Web » Programando para Internet » PHP »

ordenar array bidemensional

Estas en el tema de ordenar array bidemensional en el foro de PHP en Foros del Web. hola... he armado este array: $partido[0]["equipo"] $partido[0]["pts"] $partido[0]["gf"] $partido[0]["gc"] $partido[1]["equipo"] $partido[1]["pts"] $partido[1]["gf"] $partido[1]["gc"] .... mi consulta es ¿como hacer para ordernar este array por "PTS" ...
  #1 (permalink)  
Antiguo 19/05/2003, 00:02
 
Fecha de Ingreso: mayo-2003
Ubicación: Córdoba
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
ordenar array bidemensional

hola...

he armado este array:

$partido[0]["equipo"]
$partido[0]["pts"]
$partido[0]["gf"]
$partido[0]["gc"]
$partido[1]["equipo"]
$partido[1]["pts"]
$partido[1]["gf"]
$partido[1]["gc"]
....

mi consulta es ¿como hacer para ordernar este array por "PTS" y luego por la diferencia de "GF" y "GC"?

Desde ya muchas gracias...
  #2 (permalink)  
Antiguo 19/05/2003, 00:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Usa array_multisort():
http://www.php.net/manual/en/functio...-multisort.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/05/2003, 00:36
 
Fecha de Ingreso: mayo-2003
Ubicación: Córdoba
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
muchas gracias...

la verdad es que intenté utilizar la funcion array_multisort que está en el manual y tambien las funciones de ejemplo que dajan otras personas.... pero no se ordena..
  #4 (permalink)  
Antiguo 19/05/2003, 07:22
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 15 años
Puntos: 0
Prueba esto:

Código PHP:
function array_csort($marray$columna$asc_desc) {
  foreach (
$marray as $fila) {
   
$sortarr[] = $fila[$columna];
  }
  
array_multisort($sortarrSORT_REGULAR$asc_desc$marray);
  return 
$marray;
}

$array_resultados array_csort($array_resultados$orden$asc_desc);

// Donde $orden es la columna por la cual ordenar
// y $asc_desc puede valer: SORT_DESC o SORT_ASC (SIN COMILLAS!!) 
Ea, que te aproveche.

1 Saludo
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
  #5 (permalink)  
Antiguo 19/05/2003, 12:56
 
Fecha de Ingreso: mayo-2003
Ubicación: Córdoba
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
finalmente con la funcioón de Bvis pude ordenar el array... pero solo por "pts".
como sería para ordenar primero por "pts" y luego por "nombre" o "gf"
  #6 (permalink)  
Antiguo 19/05/2003, 13:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
BVis .. te invito a subirlo a las FAQ's de este foro .. Es algo que no llega a explicarse muy bien con ejemplos en el manual oficial de PHP.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 19/05/2003, 13:10
 
Fecha de Ingreso: mayo-2003
Ubicación: Córdoba
Mensajes: 10
Antigüedad: 14 años, 7 meses
Puntos: 0
les agradezco muchísimo a todos..... finalmente lo pude solucionar.. y se los mando por si a alguien le hace falta:

Código PHP:
function ordenar($marray){
    foreach (
$marray as $fila){
        
$s1[] = $fila["cat"];
        
$s2[] = $fila["zona"];
        
$s3[] = $fila["pts"];
        
$s4[] = $fila["gf"]-$fila["gc"];
    }
    
array_multisort($s1SORT_REGULARSORT_ASC,
                      
$s2SORT_REGULARSORT_ASC,
                    
$s3SORT_REGULARSORT_DESC,
                    
$s4SORT_REGULARSORT_DESC,
                    
$marray);
    return 
$marray;
}
$partido ordenar($partido); 
Muchas gracias
  #8 (permalink)  
Antiguo 19/05/2003, 17:03
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 15 años
Puntos: 0
Bueno, como se puede ver, se puede ordenar por más de una columna, cuando tenga algo de tiempo me curraré una funcioncilla que ordene por varias columnas como la que ha hecho jrp_100, pero de uso más general, con número de parámetros variable y to eso...

Quizá esa sea interesante subirla a las FAQ.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates
  #9 (permalink)  
Antiguo 19/05/2003, 17:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si, sería interesante. ..

Se usa mucho array_multisor() cuando se trabaja con archivos de texto plano y estructuras de datos tipo:

campo|campo2|campoN <-- registros
campo|campo2|campoN <-- registros
campo|campo2|campoN <-- registros

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 19/05/2003, 18:04
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba
Mensajes: 36
Antigüedad: 14 años, 10 meses
Puntos: 0
Yo tambien creo que sería interesante, he estado buscando documentacion sobre este tema y no hay forma de encontrar nada que lo trate a fondo o que deje bien claro cual es el metodo para extraer campos de un archivo de texto plano .Se agradeceria mucho .

Saludos
__________________
Aprender es duro, no aprender lo es más aún .
  #11 (permalink)  
Antiguo 19/05/2003, 18:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Words_in_Lam .. bueno eso es otro tema. En la base al leer el archivo obtienes un array si usas file() por ejemplo y de ahí via explode() (al caracter delimitador de tus campos) puedes obtener los "campos" (según la estructura que dí ).

Una vez en un arrya bidimensional tus datos ahí ya puedes aplicar array_multisort() como se ha explicado en estos mensajes para ordenar ese array por los indices que quieras.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 19/05/2003, 19:46
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 15 años
Puntos: 0
Bueno, pues ya la he hecho, aunque al final ha sido más complicado de lo que creía...supongo que pensando un poco más daría con una solución más sencilla, pero ésto es lo que he conseguido hacer...

La función devolverá FALSE en caso de que los parámetros no sean correctos. En caso contrario, obtendremos el array de entrada ordenadito, por tantos campos le hayamos indicado.

Son las 2 de la mañana y tengo que madrugar, así que si algo falla, me lo decís y mañana le pego un repaso al tema si puedo.

Código PHP:
function ordenar_array() {
  
$n_parametros func_num_args(); // Obenemos el número de parámetros
  
if ($n_parametros<|| $n_parametros%2!=1) { // Si tenemos el número de parametro mal...
    
return false;
  } else { 
// Hasta aquí todo correcto...veamos si los parámetros tienen lo que debe ser...
    
$arg_list func_get_args();

    if (!(
is_array($arg_list[0]) && is_array(current($arg_list[0])))) {
      return 
false// Si el primero no es un array...MALO!
    
}
    for (
$i 1$i<$n_parametros$i++) { // Miramos que el resto de parámetros tb estén bien...
      
if ($i%2!=0) {// Parámetro impar...tiene que ser un campo del array...
        
if (!array_key_exists($arg_list[$i], current($arg_list[0]))) {
          return 
false;
        }
      } else { 
// Par, no falla...si no es SORT_ASC o SORT_DESC...a la calle!
        
if ($arg_list[$i]!=SORT_ASC && $arg_list[$i]!=SORT_DESC) {
          return 
false;
        }
      }
    }
    
$array_salida $arg_list[0];

    
// Una vez los parámetros se que están bien, procederé a ordenar...
    
$a_evaluar "foreach (\$array_salida as \$fila){\n";
    for (
$i=1$i<$n_parametros$i+=2) { // Ahora por cada columna...
      
$a_evaluar .= "  \$campo{$i}[] = \$fila['$arg_list[$i]'];\n";
    }
    
$a_evaluar .= "}\n";
    
$a_evaluar .= "array_multisort(\n";
    for (
$i=1$i<$n_parametros$i+=2) { // Ahora por cada elemento...
      
$a_evaluar .= "  \$campo{$i}, SORT_REGULAR, \$arg_list[".($i+1)."],\n";
    }
    
$a_evaluar .= "  \$array_salida);";
    
// La verdad es que es más complicado de lo que creía en principio... :)

    
eval($a_evaluar);
    return 
$array_salida;
  }
}

// EJEMPLO DE USO:
$array_a_ordenar = array(
                 
=> array('campo1' => 'patatas''campo2' => 1'campo3' => 'kkkk'),
                 
=> array('campo1' => 'coles''campo2' => 3'campo3' => 'aaaa'),
                 
=> array('campo1' => 'tomates''campo2' => 1'campo3' => 'zzzz'),
                 
=> array('campo1' => 'peras''campo2' => 7'campo3' => 'hhhh'),
                 
=> array('campo1' => 'tomates''campo2' => 4'campo3' => 'bbbb'),
                 
=> array('campo1' => 'aguacates''campo2' => 3'campo3' => 'yyyy'),
         );

$array_ordenadito ordenar_array($array_a_ordenar'campo2'SORT_DESC'campo1'SORT_DESC) or die('<br>ERROR!<br>'); 
Cluster, cuando vea que funciona como debe, lo subiré a las FAQ, o si tienes tiempo y ganas súbelo tú mismo.

Ea, un saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 19/05/2003 a las 19:52
  #13 (permalink)  
Antiguo 19/05/2003, 20:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. cuando los interesados testeen la funcioncita y den el Ok .. yo mismo lo subo a las FAQ's con tus correspondientes créditos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 20/05/2003, 16:32
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
hola BVis,

no te gustaría incorporar esa funcion a un script para gestión de consultas a MySQL...? hace un tiempo quise hacer una clase para gestión de consultas a mysql para poder reutilizar en los sitios web, y pensé que por ahí estaría bueno hacerla como script open-source..., actualmente estoy trabajando en esa clase, por ahora tengo lista y testeada la clase con un método para consultas select que obtiene registros de la base y los releva en arrays...

si te interesaría hacerlo, escribime a webmaster[arroba]sci-web.com.ar

por lo demás si alguien le interesa la posibilidad de colaborar en el desarrollo de esta clase (será open-source así que está abierto a todo el que le interese) también contáctese, o si está interesado en usarla también para sus propios códigos... escríbanme a webmaster[arroba]sci-web.com.ar..., para pasarles el enlace de la documentación preliminar - la estoy testeando en un ambiente de producción y hasta ahora funciona, aunque solamente está terminado el método para hacer consultas select y la idea sería seguir con toda una serie de métodos para hacer inserts, etc, como también este tipo de funciones de BVis para manipular arrays, que pueden mejorar la rapidez de los scripts

saludos y disculpen la extensión y el off-topic
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
  #15 (permalink)  
Antiguo 20/05/2003, 22:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm sci-fi .. ¿pero para que quieres ordenar un array de un resultado de una consulta SQL (de un xxx_fetch_array() ) .. cuando ya tienes el SQL particular de cada BD para hacer eso mismo y te aseguro que mucho mas ópitmo que "trabajarlo" con PHP?

Eso sí .. si tienes pensado hacer una classe que gestione archivos de texto plano con estructura CSV (la que puse mas arriba ), la función de BVis es lo ideal para trabajar esos datos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 21/05/2003, 11:30
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
hola Cluster,

no lo tengo bien claro aún, pero para el caso esta función podría utilizarse para reemplazar ORDER BY, o bien para WHEREs sin ORDERs etc, o podría usarse para hacer un reordenamiento de los datos obtenidos sin necesidad de volver a realizar la consulta; o si no incluso se podría usar en el caso de "mandar" los datos a archivos .cvs

en general la ventaja de "mandar" los registros a arrays es que después uno puede manipular los datos como quiera de necesitarlo sin reconectarse a la base, ocupando el tiempo de conexión a la base solamente lo mínimo necesario: al principio del script, una vez obtenidos los datos se cierra y no se vuelve a abrir, y se evita mezclar el sql con la "salida" de echo o de html, que también leí por ahí que no era conveniente

el ORDER BY de sql consume mucho tiempo y recursos (siempre al leer sobre performance vi que recomendaban no usar ORDER BY a menos que sea inevitable, por ejemplo: http://www.phpbuilder.com/columns/we...09.php3?page=6), con esta función se me ocurre, así en crudo que se podría hacer una consulta SQL a la base sin ORDER BY pero luego reemplazarlo con esta función de Bvis, ordenando el array... eso mejoraría la performance de la consulta, aunque es solamente una idea

por ejemplo si tengo

SELECT * FROM chango WHERE etc ORDER BY campo2,campo1,campo3

se podría hacer solamente SELECT * FROM chango WHERE etc, una vez obtenido el array que quedaría como array bidimensional

[0]['campo1'], [0]['campo2'], [0]['campo3']
[1]['campo1'], [1]['campo2'], [1]['campo3']

etc etc

se podría llamar la funcion de BVis:

ordenar_array($array, 'campo2', SORT_DESC, 'campo1', SORT_DESC, 'campo3', SORT_DESC);

de todas maneras hacer esto sería opcional. quien quisiera usar ORDER BY podría usarlo

algunas cosas de la clase que ya 'andan'
- paginaciones de datos al mismo tiempo de hacer la consulta, con cifras de los registros y cuántos result-sets serían en total para toda la tabla de acuerdo a los LIMITs usados
- chequeo de seguridad de argumentos sql
- error handling interno y de mysql
- contar totales delimitando el campo a contar con '{}', o no de lo contrario (para consultas con LIMIT, esto contaría el total de registros a usar sin considerar el LIMIT)
- calcular tiempo de ejecucion de PHP + SQL o por separado

para ver un ejemplo de testeo de la clase http://cinehol.com.ar/p_posters.php?navPrefix=POS

a quien le interese hay una documentación preliminar provisoria en http://www.sci-web.com.ar/scripts/servidor/clasemysql/ (no se puede bajar todavía sino dentro de unos días)
  #17 (permalink)  
Antiguo 21/05/2003, 15:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Bueno .. sigo pensando que una consulta a tu BD va a ser mas rápido que gestionarte un array via PHP en memoria (y recursos del servidor HTTP) ..

Si te preocupa el tiempo de conexión a tu BD .. puedes usar para ello conexiones persistentes msyql_pconnect() .. Fijate en la "P" de "persistente" .. con eso se crea un enlace a tu BD (link) .. si haces una consulta a ese mismo link de conexión y está abierto .. no se reconecta a la BD con el ahorro de tiempo de negociación de tu cuenta de usuario en ese servidor Mysql ..

Luego .. una vez realizada una consulta .. si quieres por ejemplo "jugar" con los datos de esa consulta en varias partes de tu script sin repetir la misma consulta .. puedes usar por ejemplo:

mysql_data_seek() .. Con eso mueves el puntero de la consulta que has hecho donde quieras en el resultado para que hagas lo que tengas que hacer con esos datos.

Como comentas bien .. el "ORDER BY" cosume muchos recursos (de Mysql . no de PHP) .. pero .. ordenar ese array via PHP va a consumir igualmente muchos recuros (sobre todo tiempo de proceso) .. Haz tus pruebas y test con tiempos de ejecución ... (yo creo que Msyql va a ser mas rápido que la versión PHP .. Sobre todo si diseñas bien tu BD y usas campos indexados para los ORDER BY un_campo_que_sea_indexado ..)


Por lo demas .. en lo personal .. me gustan las capas de abstracción de Base de datos que hagan ese trabajo sólo. Temas como el de páginado .. prefiero otra classe por separado que tal vez la pueda adjuntar a la classe Base con algun "extended" por ejemplo a modo de "módulos" .. Pero esto no es más que una opinión personal.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #18 (permalink)  
Antiguo 21/05/2003, 16:51
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
bueno la clase la había hecho entre otras cosas porque el server mysql con el que trabajo ahora (que espero poder cambiar dentro de poco) se congestiona a los mil diablos; en cambio, PHP, funciona siempre bien incluso en las horas pico, a pesar de que la memoria ram del server es bien poca, creo que 128 MB.. eso no quiere decir que mysql tenga mala performance, sino que el server está mal seteado, tiene poca ram, y entonces el server no puede con los "miles" de sitios web que deben haber metido en la bolsa

haciendo testeos con esa clase me dio siempre que el tiempo de ejecución del sql en el server mysql siempre daba más o menos arriba del 85% del total de ejecución del script (incluyendo PHP), mientras que el tiempo de PHP daba entre el 15% y generalmente siempre menos del 10%, por lo menos en este server

había visto lo de conexiones persistentes con mysql_pconnect, pero hay servers que no lo permiten (es mi caso); y he leído que no es 100% confiable... al menos con mysql 4.23... no sé cuánto será así

de todas maneras, a pesar de que el manual oficial de mysql lo recomienda, no estoy todavía convencido de que consuma menos recursos... me parece que varias conexiones lo más cortas posibles son más rápidas que una conexión persistente... supongamos que haya 100 usuarios al mismo tiempo; es más la carga conectando los 100 solamente cuando se necesita (y considerando que la persistente puede continuar, para cada usuario individual, en los "tiempos muertos" del usuario, o sea cuando este usuario no requiere datos de la bd), que 100 conexiones persistentes al mismo tiempo...? en fin, no estoy seguro de esto, además es solamente mi idea personal

con respecto a lo mysql_data_seek() eso me parece muy bueno... no tengo idea si utiliza de recursos de mysql?

gracias por los comentarios

saludos
  #19 (permalink)  
Antiguo 21/05/2003, 17:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
con respecto a lo mysql_data_seek() eso me parece muy bueno... no tengo idea si utiliza de recursos de mysql?
Creo que no .. (no te lo puedo confirmar) ..

Sobre los problemas con tus consultas .. mm Tu indexas tus campos que usas para tus consultas tipo ORDER BY .. o WHERE .. por porner algunos ejemplos? ...

Recuerdo este mensaje ..
http://www.forosdelweb.com/showthrea...hreadid=130936
(jeje .. justamente participastes tu en el mensaje xDDD)

Fijate que se quejaba de mala "performance" de sus apliacaciones .. Todo el problema era que no indenxaba ningun campo de su tabla (de los que use para hacer consultas condicionales u ordenamientos, grupos . etc ...)

Lo malo de esto .. que en Msyql depende exclusivamente del programador .. así que si ese servicio de hosting que usas sus usuarios no se percatan de esto .. el rendimiendo de Msyql en general es lógico que caiga en picado para todos los usuarios.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #20 (permalink)  
Antiguo 21/05/2003, 18:30
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
Cita:
Sobre los problemas con tus consultas
.. mm Tu indexas tus campos que usas para tus consultas
tipo ORDER BY .. o WHERE .. por porner algunos ejemplos? ...
sí, uso de 2 a 3 índices por tabla... doy prioridad a WHERE y JOIN por sobre ORDER, porque justo por ahi el ORDER puede ser cualquiera de los campos (justo para ese caso de sitio en particular; no en general)....pero sí los indices te sirven mucho para los order by... de todas maneras eso del array_multisort era una posibilidad, no tengo mucha idea de cómo sería y si realmente serviría...

Cita:
Por lo demas .. en lo personal .. me gustan las capas
de abstracción de Base de datos que hagan ese trabajo sólo.
Temas como el de páginado .. prefiero otra classe por separado
que tal vez la pueda adjuntar a la classe Base con
algun "extended" por ejemplo a modo de "módulos" ..
Pero esto no es más que una opinión personal.
me olvidaba con respecto a la clase, hay dos opciones para usar, por ej.

Código PHP:
$obj = new Consulta;

$rs $obj->consultar 'STANDALONE''clausula sql bla bla bla' ); 
en este caso no se haría nada de paginación; pero también se puede usar de otra forma para agregarle paginacion:

Código PHP:
$rs $obj->consultar (
'campos'
'tablas'
'campo de ordenamiento DESC|ASC'
'condicionales: WHERE {campo1} = campo2, 
o sino JOIN bla bla'

0
20
'prefijo de global "mivar_" [opcional]' ); 
no encontré hasta ahora forma más compacta, pero para el argumento de los condicionales WHERE o JOIN (el 4º): al nombre de campo que vaya entre { y } ése se utiliza para contar el total de registros -con una consulta COUNT() adicional, que en realidad tengo pensada sacarla y agregarle un COUNT() a la consulta principal-, si no fuera entre '{' y '}' no se cuentan los totales.

los 4 primeros argumentos son los que componen la consulta sql completa (tal vez se podrían meter en un arg. solo). los tres últimos (el último de esos 3 es opcional) se usan para hacer la paginación.

en el caso de la llamada de arriba, 0 (en el 5º argumento) sería el puntero de result-set. 20 (en el 6º) sería el número de registros a tomar de vez en vez. o sea que serían los 20 primeros registros (limit 0, 20). si fuesen 1 y 20, en lugar de 0 y 20, serían los segundos 20 registros, del 21 al 40 (limit 20, 20). el último argumento sería para crear cuatro globales con el prefijo indicado ahí; por ejemplo 'mivar_', crearía 4 vars: $mivar_inicio (1), $mivar_medio (20), $mivar_fin (supongamos 245, el total de registros), y $mivar_indices (en este caso sería: 13, o sea 13 páginas de result-sets si se usa de 20 en 20... 245 / 20 redondeado para arriba) la idea después es poner en sesión $mivar_fin para no volver a realizar COUNT() para obtener los totales de vuelta; eso todavía no lo hice

cluster, muchas gracias por tus comentarios... la verdad que me son de mucha utilidad y como siempre uno se entera de nuevas cosas

saludos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:31.