Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/02/2015, 17:07
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Dudas para crear tabla horizontal en PHP y Mysqli

Cita:
Iniciado por orodrf Ver Mensaje
Disculpen la intromisión jejeje sería interesante que el usuario que abrio este tema explique su intensión (del porque requiere convertir horizontalmente su tabla) para mayor claridad, si me permiten me gustaría dar mi opinion, es cierto es útil poder convertir la presentacion o reporte de información de vertical a horizontal en ciertas ocasiones queda mas claro y mejor, estuve revisando algunos link que ofrecio NSD y efectivamente existen gestores SQL que dan soporte, el tema es que las que pude revisar hablan de tablas dinamicas y temporales (tablas en memoria), mysql permite tablas temporales quizas podría utilizarse como alternativa, ahora lo que no me cierra es la intensión de convertir tablas verticales (supongo que son extensas) a horizontales, segun la estructura de los archivos de por lo menos mysql cada tabla es un archivo y hacerlo crecer horizontalmente mediante alter table presupone crear un nuevo archivo y hacerlo mas ancho y luego leer los registros viejos y copiarlos al nuevo archivo, y me parece excesivo el trabajo y que estaría penalizando el tiempo del procesador, además para hacer esto el archivo debe accederse exclusivamente y no puede ser accedido por los demas terminales. Disculpen si no entendi bien el tema, pero habría que evaluar bien el tema, si son pocos registros no habría mayores problemas ahora si son muchos...
Primero que nada, uno de los primeros conceptos del modelo relacional es que los datos crecen verticalmente, nunca en horizontal, ningun motor de datos relacional soportara nunca ese tipo de estructura.

Los datos reales nunca se rotan, se rota el resultado de la consulta, es decir, lanzas la consulta, vuelve el resultado, se pivota este para rotarlo, y luego se obtiene una nueva tabla con los datos rotados.
Por lo general los resultados a pivotar son ciempre pocos registros (menos de 100), la implementacion de esto es muy compleja, debido a que las columnas finales (tanto nombre como cantidad) son dinamicos, y las condiciones de filtrado (WHERE, HAVING, ETC) deben poder aplicarse tanto a los resultados pivotados como a los previos a la rotacion, por este motivo son pocos motores los que lo soportan.
Cita:
Iniciado por orodrf Ver Mensaje
y porque cambiar en la base de datos? porque no hacerlo en la presentacion o reporte?
Hay muchas formas de hacerlo, depende lo que se quiera lograr, si el destino de los datos es mostrarlo al usuario se pueden usar las etiquetas "col" de HTML en vez de los "tr", pero si esos datos deben ser enviados a otro procedimiento, entonces hay que rotarlos antes, ya sea desde la base de datos o desde php.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios