Ver Mensaje Individual
  #16 (permalink)  
Antiguo 21/05/2003, 10:30
Avatar de sci-fi
sci-fi
 
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 1 mes
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)