Foros del Web » Programando para Internet » PHP »

Consulta Multitablas

Estas en el tema de Consulta Multitablas en el foro de PHP en Foros del Web. Hola que tal. Por favor me pueden ayudar con un query multitabla, Mi problema es que el resultado de la consulta me entrega los datos ...
  #1 (permalink)  
Antiguo 08/03/2012, 07:59
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 18 años
Puntos: 0
Consulta Multitablas

Hola que tal.

Por favor me pueden ayudar con un query multitabla,

Mi problema es que el resultado de la consulta me entrega los datos 2 veces los mismos registros, he cambiado los LEFT JOIN de una y otra forma, a veces me muestra varias veces los mismos registros, y en otras no muestra nada, lo mas cerca es el código que dejo a continuación que muestra 2 veces cada registro.
Código PHP:
public function ver_Hosting_usu($rut)
                {
                        
$sql=" SELECT
                                serclie.cod_servicio,/*0*/
                                serclie.rut_empresa,/*1*/
                                UNIX_TIMESTAMP(serclie.fecha_inicio) AS fecha_inicio,/*2*/
                                UNIX_TIMESTAMP(serclie.vencimiento) AS vencimiento,/*3*/
                                serclie.nombre_dominio,/*4*/
                                serclie.estado,/*5*/
                                clie.empresa,/*6*/
                                clie.rut_empresa,/*7*/
                                clie.usuario,/*8*/
                                UNIX_TIMESTAMP(clie.fecha_contrata) AS fecha_contrata,/*9*/
                                serv.cod_servicio,/*10*/
                                serv.servicio,/*11*/
                                serv.cod_categoria,/*12*/
                                host.id,/*13*/
                                host.cod_hosting,/*14*/
                                host.valor,/*15*/
                                pago.rut_empresa,/*16*/
                                pago.monto/*17*/

                                FROM spc_servicio_cliente serclie
                                LEFT JOIN spc_clientes clie ON serclie.rut_empresa = clie.rut_empresa
                                LEFT JOIN spc_servicios serv ON serclie.cod_servicio = serv.cod_servicio
                                LEFT JOIN spc_datos_hosting host ON serclie.cod_servicio = host.cod_hosting
                                LEFT JOIN spc_datos_pagos pago ON serclie.estado = pago.estado
                                WHERE serclie.rut_empresa = '$rut'
                                AND serv.cod_categoria = '0101'
                                "
;

                                
$res=mysql_query($sql,Conectar::con());
                                while (
$reg=mysql_fetch_assoc($res))
                                {
                                        
$this->datos[]=$reg;
                                }
                                        return 
$this->datos;
                } 
__________________
Un Cordial Saludo
Claudio González Soto
Negocios Online
http;//www.servpcweb.com
  #2 (permalink)  
Antiguo 15/03/2012, 04:28
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Consulta Multitablas

Hola claudio_hbl, después de 1200 lecturas y ninguna respuesta te comento que postees la estructura de tablas y el resultado que esperas obtener para que sea posible ayudarte. Saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 15/03/2012, 06:07
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 18 años
Puntos: 0
Respuesta: Consulta Multitablas

Gracias repara2
spc_clientes
id int(1 )
iduser varchar(32)
empresa varchar(30)
rut_empresa varchar(12)
fono varchar(36)
usuario varchar(8)
email varchar(255)
password varchar(32)
activo int(1)
fecha_contrata date

spc_servicio_cliente
id int(11)
cod_servicio varchar(7)
rut_empresa varchar(12)
usuario varchar(8)
nombre_dominio varchar(255)
fecha_inicio date
vencimiento date
cod_categoria varchar(7)
estado int(10)

spc_servicios
id int(11)
cod_servicio varchar(7)
servicio varchar(25)
cod_categoria varchar(7)

spc_datos_hosting
id int(11)
cod_hosting varchar(7)
setup varchar(6)
espacio varchar(20)
transferencia varchar(20)
email varchar(10)
autorrespuesta varchar(10)
dominios_a varchar(10)
sub_dominios varchar(10)
redireccion varchar(10)
ftp varchar(10)
mysql varchar(10)
valor decimal(8,2)

spc_datos_pagos
id int(11)
rut_empresa varchar(12)
usuario varchar(8)
cod_servicio varchar(7)
monto decimal(12,2)
nro_docto varchar(20)
forma_pago varchar(15)
medio_pago varchar(15)
descuento decimal(12,2)
fecha_pago date
ip varchar(16)
estado int(1)

Esa es la estructura de las tablas involucradas.
Este es el resultado que necesito obtener, que los clientes vean su servicio activo, el valor pagado, después de un descuento por promoción o pago anticipado, el valor real, la Fecha de Inicio, fecha del próximo vencimiento el dominio el estado y ver el detalle, del plan, el que abre una ventana con los datos del plan de hosting obtenido, sobre el campo dominio, no hay problema porque me funciona biien, lo que pasa que con los cambios tratando de solucionarlo, debo haberlo comentado mientras, y el estado tambien, esta bien solo falta poner a que se refiere cada opción, Activo o pendiente.


Servicio de Hosting
Plan Hosting Valor Pagado Valor Real Fecha Inicio Vencimiento Dominio Estado Detalle
Hosting SPC_1000 $10.000.- $12.000.- 30-March-2009 30-March-2012 1 Ver
Hosting SPC_1000 $8.400.- $12.000.- 30-March-2009 30-March-2012 1 Ver
Hosting SPC_1000 $10.000.- $12.000.- 06-March-2012 30-March-2013 2 Ver
Hosting SPC_1000 $8.400.- $12.000.- 06-March-2012 30-March-2013 2 Ver

Como puedes ver se repiten los datos.

Gracias de antemano por cualquier ayuda.
__________________
Un Cordial Saludo
Claudio González Soto
Negocios Online
http;//www.servpcweb.com

Etiquetas: registro, sql, tabla, usuarios
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 14:05.