Foros del Web » Programando para Internet » PHP »

Consulta varias bases de datos

Estas en el tema de Consulta varias bases de datos en el foro de PHP en Foros del Web. Hola todos!! Esperando se encuentres bien, les comento mi problematica: Tengo 3 tablas, cada tabla contiene información con los campos: Tabla "A" con campos Mes, ...
  #1 (permalink)  
Antiguo 29/10/2007, 10:43
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Consulta varias bases de datos

Hola todos!!
Esperando se encuentres bien, les comento mi problematica:

Tengo 3 tablas, cada tabla contiene información con los campos: Tabla "A" con campos Mes, Bloque, Número, Porcentaje; Tabla "B" y Tabla "C" : Mes, Bloque, Número, Porcentaje, Nombre;

Al momento de consultar las 3 tablas lo hago por mes y bloque, pero no tengo todos los meses ni todos los bloques en las 3 tablas, es decir, en la Tabla "A" tengo de enero a julio con 20 bloques cada mes, sin embargo en las otras dos no, puedo tener enero-mayo con 10 bloques cada una.
La problematica que tengo es no se como hacerle para que cuando haga la consulta -query- me traen los datos que he solicitado -ejemplo, enero 20 bloques -, sin embargo al desplegar la información los datos de la Tabla"S" si me los da, la Tabla "B" no tiene todos los bloques, solo 15 y la Tabla"C" 10 bloques.

¿Cómo le hago para que los bloques 1 al 15 y 1 al 10 de las tablas B y C respectivamente, se despliegen dentro de los bloques 1 al 15 de la tabla "A" y 1-10?
Despliego esta información en una tabla y quisiera que hiciera algo asi:

BloqueTA Mes BloqueTB BloqueTC
1 Enero 1 --------
2 Enero ------- 2
3 Enero 3 3

Sin embargo como le estoy haciendo sale algo asi:

BloqueTA Mes BloqueTB BloqueTC
1 Enero 1 2
2 Enero 3 -----------
3 Enero ------ -----------

Obviamente este último no derá datos correctos pues la información de la Tabla B bloque 1 No será la misma con la Tabla C bloque 2.

No se si me entiendan lo que quiero hacer, por favor, ayudenme ya que tengo algunos días trabajando con ello pero no sale, por eso recurro a ustedes.

Gracias y saludos,
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #2 (permalink)  
Antiguo 29/10/2007, 10:52
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Consulta varias bases de datos

No he logrado entender lo que buscas... podrias explicarmelo con manzanas xD

Gracias y espero tu respuesta.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 29/10/2007, 11:00
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Consulta varias bases de datos

Te explico, dentro de la tabla "A" tengo toda la información (mes y bloque), pero cuando mando a llamar a las otras 2 tabla ("B" y"C") estas no contienen toda la información en ocasiones faltan bloques o meses, por lo que cuando hago mi query select * from Tabla B where .......... me trae todo lo que tiene relacionado al campo de la tabla "A" en cuanto a bloque, pero cuando lo quiero acomodar en una tabla, simplemente me lo pone pero no respeta los números de bloque de la Tabla "A", por eso le puse en el ejemplo que si estaba en el bloque 1 para la tabla "A", y si la tabla "B" no tiene nada de bloque 1 me respete ese espacio y si tiene información para el bloque 2 entonces me lo despliege y así sucecivamente para la tabla "C".
Espero haya quedado un poco mas claro, gracias por tu ayuda.
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #4 (permalink)  
Antiguo 29/10/2007, 11:09
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Consulta varias bases de datos

Ok... creo que estoy captandolo...

Lo voy a llevar a otro ejemplo para ver si lo he entendido.

Supongamos que tengo 3 tablas con distintos meses.
tabla1 enero a diciembre
tabla2 enero a agosto
tabla3 enero a marzo

y quiero sacar la informacion de enero de las tres tablas

Eso es ?
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 29/10/2007, 11:20
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Consulta varias bases de datos

pero no en todos los meses tengo la misma cantidad de información, sin embargo quiero que "empaten" los días, enero de la tabla 1 tiene los 31 dias, pero enero de la tabla 2 solo 20 y asi para la tabla 3 solo 15, pero que cuando despliege la información me salga que.. el dia 1 de enero si la hay en febrero de ese dia lo ponga en el mismo renglon si no lo deje en blanco y si lo hay para la tabla 3 lo ponga si no ponga enero 2, tabla2 enero 2 si encuentra datos los ponga, tabla3 no encontro datos deje en blanco y asi sucesivamente hasta que termine enero con los 31 dias de la tabla1.
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #6 (permalink)  
Antiguo 29/10/2007, 11:26
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Consulta varias bases de datos

Ok... lo que puedes hacer es llenar los datos en una matriz.

O sea... vas a buscar los datos de cada mes en consultas distintas y vas agregandolo a esta matriz que va a ser de este tipo:

$year['Enero']['tablaA'][1] = 1;
$year['Enero']['tablaA'][2] = 1;
$year['Enero']['tablaA'][3] = 1;
$year['Enero']['tablaB'][3] = 1;
$year['Enero']['tablaC'][3] = 1;

Luego para recorrerla es solo recorrer el primer indice con los meses del año (que pueden estar en un array) y el segundo indice va a ser tu tabla. El tercer indice es el numero del dia y el valor de esa casilla representa si hay datos y que datos son ese dia.

Funciona con esto? o necesitas una consulta que haga todo esto ?
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 29/10/2007, 11:29
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Consulta varias bases de datos

De hecho lo hago de una consulta dinámica, pero a que te refieres con tu pregunta?
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.

Última edición por acastillog70; 29/10/2007 a las 11:39
  #8 (permalink)  
Antiguo 29/10/2007, 11:44
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Consulta varias bases de datos

Me refiero si quieres hacer el ordenamiento de los datos en un arreglo con consultas separadas como: SELECT * FROM tabla1, SELECT * FROM tabla2 y SELECT * FROM tabla3 con su respectuvo WHERE y luego ordenar esto en el arreglo que te mencione mas arriba o tratar de hacerlo en una sola consulta como: SELECT * FROM tabla1, tabla2, tabla3 ??

A eso me referia... si era de importancia que saliera todo de una o ir haciendolo por partes.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 29/10/2007, 11:47
Avatar de acastillog70  
Fecha de Ingreso: septiembre-2003
Ubicación: México, D.F.
Mensajes: 181
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Consulta varias bases de datos

ah!, ok, una consulta por cada tabla: select * from tabla1 where bloque = $_POST[Bloque]; asi para cada una de las tablas, ahi es donde me trae toda la información pero no tengo idea de como hacerle para que me despliege la información como lo hemos comentado
__________________
Nacemos para morir. De lo demas, no te preocupes, ocupate.
  #10 (permalink)  
Antiguo 29/10/2007, 12:02
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Consulta varias bases de datos

Para desplegarla lo que puedes hacer son for anidados:

Código PHP:
$mes = array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
$meses count($mes);
$tabla = array('tablaA','tablaB','tablaC');
$tablas count($tabla);
$dias = array(date('t',mktime(00011date("Y"))),
        
date('t',mktime(00021date("Y"))),
        
date('t',mktime(00031date("Y"))),
        
date('t',mktime(00041date("Y"))),
        
date('t',mktime(00051date("Y"))),
        
date('t',mktime(00061date("Y"))),
        
date('t',mktime(00071date("Y"))),
        
date('t',mktime(00081date("Y"))),
        
date('t',mktime(00091date("Y"))),
        
date('t',mktime(000101date("Y"))),
        
date('t',mktime(000111date("Y"))),
        
date('t',mktime(000121date("Y"))));
//recorres los meses
for($i=0;$i<$meses;$i++){
    
//recorres las tablas
    
for($j=0;$j<$tablas;$j++){
        
//recorres los dias
        
for($k=1;$k<$dias[$i];$k++){
            
//aki sale el dato:
            
$year[$meses[$i]][$tablas[$j]][$k] = 'el dato q corresponda';
            echo 
'<br>'.$year[$meses[$i]][$tablas[$j]][$k];
        }
    }

Es medio complicado pero sirve para crear cosas aun mas complejas jojo :D
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 21:56.