Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2013, 08:26
Avatar de higiniosamaniego
higiniosamaniego
 
Fecha de Ingreso: noviembre-2012
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 0
Php consulta mysql extensa no funciona.

Buenos días, estoy haciendo una consulta en mysql con php, la consulta tiene varios joins y union con otras tablas, lo que si es que no funciona, les paso el codigo para que vean y me guien.

Código PHP:

$conexion 
mysql_connect("localhost","bd","blabla") or die("No se pudo conectar a la base de datos"); 
mysql_select_db("FactuSD") or die("No se puede seleccionar BD");  

$usuario=mysql_query("Select login, email from sec_users"); 

    while(
$arr=mysql_fetch_array($usuario)){
    
        
$userLogin $arr['login'];
        
//echo $userLogin."<br>";
        
$solicitud mysql_query("
                Select DS.IdSolicitud, S.FechaCarga as Fecha, TE.Descripcion as TipoEmision,
                E.Descripcion as Empresa, SI.Descripcion as Sistema, S.ImporteNCR, SU.name as Solicitante, 
                ES.Descripcion as Estado from DetalleSolicitud DS
                JOIN Solicitud S ON DS.IdSolicitud = S.IdSolicitud
                JOIN Empresa E ON S.IdEmpresa = E.IdEmpresa
                JOIN Estado ES ON DS.IdEstado = ES.IdEstado
                JOIN TipoEmision TE ON S.IdTipo = TE.IdTipo
                JOIN SistemaElemento SE ON S.IdSE = SE.IdSE
                JOIN Sistema SI ON SE.IdSistema = SI.IdSistema
                JOIN Acceso A ON S.IdAcceso = A.IdAcceso
                JOIN sec_users SU ON A.IdUsuario = SU.login
                Where DS.IdDetalle IN 
                 (SELECT DSA.IdDetalle FROM vDetalleSolicitudAprobador DSA 
                WHERE DSA.IdUsuario =* 'asoler' 
                 AND DSA.IdSolicitud = DS.IdSolicitud AND DSA.IdEstado IN (1, 5) 
                GROUP BY DSA.IdSolicitud HAVING (DS.Prioridad = MIN(DSA.Prioridad)) 
                AND (MIN(DSA.Prioridad) = (SELECT MIN(DSAT.Prioridad) 
                FROM vDetalleSolicitudAprobador DSAT* 
                WHERE DSAT.IdSolicitud = DSA.IdSolicitud AND DSAT.IdEstado IN (1, 5)))) 
                AND DS.IdSolicitud not In (Select IdSolicitud from DetalleSolicitud 
                where IdEstado = 3)
                UNION ALL
                SELECT DS.IdSolicitud, S.FechaCarga as Fecha, TE.Descripcion as TipoEmision,
                E.Descripcion as Empresa,* SI.Descripcion as Sistema, S.ImporteNCR, SU.name as Solicitante, 
                ES.Descripcion as Estado
                FROM DetalleSolicitud DS
                JOIN Solicitud S ON DS.IdSolicitud = S.IdSolicitud
                JOIN Nivel N ON S.IdTipo = N.IdTipo
                JOIN sec_groups SG ON N.IdCategoria = SG.IdCategoria
                JOIN Acceso A ON SG.group_id = A.IdPerfil And S.IdEmpresa = A.IdEmpresa
                JOIN TipoEmision TE ON S.IdTipo = TE.IdTipo
                JOIN Empresa E ON S.IdEmpresa = E.IdEmpresa
                JOIN SistemaElemento SE ON S.IdSE = SE.IdSE
                JOIN Sistema SI ON SE.IdSistema = SI.IdSistema
                JOIN Acceso AC ON S.IdAcceso = AC.IdAcceso
                JOIN sec_users SU ON AC.IdUsuario = SU.login
                JOIN Estado ES ON DS.IdEstado = ES.IdEstado
                where DS.IdEstado = 4 
                and A.IdUsuario = 'asoler'
                and SG.IdCategoria = 3
                and NOT EXISTS(Select D.IdSolicitud From DetalleSolicitud D Where D.IdSolicitud = DS.IdSolicitud AND D.IdEstado != 4)
                Group by DS.IdSolicitud
                Union ALL
                Select DS.IdSolicitud, S.FechaCarga as Fecha, TE.Descripcion as TipoEmision,
                E.Descripcion as Empresa, SI.Descripcion as Sistema, S.ImporteNCR, SU.name as Solicitante, 
                ES.Descripcion as Estado
                From DetalleSolicitud DS
                JOIN Solicitud S ON DS.IdSolicitud = S.IdSolicitud
                JOIN Empresa E ON S.IdEmpresa = E.IdEmpresa
                JOIN Estado ES ON DS.IdEstado = ES.IdEstado
                JOIN TipoEmision TE ON S.IdTipo = TE.IdTipo
                JOIN SistemaElemento SE ON S.IdSE = SE.IdSE
                JOIN Sistema SI ON SE.IdSistema = SI.IdSistema
                JOIN Acceso A ON S.IdAcceso = A.IdAcceso
                JOIN sec_users SU ON A.IdUsuario = SU.login
                Where
                DS.IdEstado = 3 AND S.IdAcceso IN 
                (Select IdAcceso From Acceso where IdUsuario = 'asoler')
                "
);
                
                
//$solicitud = mysql_query("select * from Acceso where IdUsuario = $userLogin'");
                
                
while($arr1=mysql_fetch_array($solicitud)){
                    echo 
"<pre>";
                    
print_r($arr1);
                    echo 
"</pre>";
                }
    
    } 
AL ejecutar me muestra que mysql_fetch_array necesita un parametro.

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

ese es el error, lo que me dí cuenta es que solo el select no ejecuta, con otro select mas pequeño si funciona, espero puedan ayudarme con una alternativa de otra funcion o algo. Gracias...