Foros del Web » Programando para Internet » PHP »

problemas con subquery en php

Estas en el tema de problemas con subquery en php en el foro de PHP en Foros del Web. Buenas tardes me estado cabeciando mucho con esto si alguien me pudiera dar una mano en esto se los agradeceria lo que pasa es que ...
  #1 (permalink)  
Antiguo 14/07/2011, 13:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
problemas con subquery en php

Buenas tardes me estado cabeciando mucho con esto si alguien me pudiera dar una mano en esto se los agradeceria lo que pasa es que nesesito sacar unos datos de varias tablas la idea es hacer un RAND() de anuncios para clientes de un perfil especifico pero sin reperir el cliente y estoy intentando con la siguiente funcion php :
Código PHP:
Ver original
  1. function obtenerAnuncio($Cliente)
  2.     {
  3.        $filtroCategoria = '';
  4.         if($idCategoria)
  5.             $filtroCategoria = "(anuncios.idCategoria = $idCategoria) AND ";
  6.            
  7.        $this->InciarConexion();
  8.  
  9.        $Consulta = " SELECT T1.*, COUNT(idGC) AS totAnuncios ";
  10.        $Consulta .= " FROM ";
  11.        $Consulta .= " (SELECT ";
  12.        $Consulta .= " A.idEstado, ";
  13.        $Consulta .= " P.nombre nombrePerfil, ";
  14.        $Consulta .= " C.nombre, ";
  15.        $Consulta .= " A.idCategoria, ";
  16.        $Consulta .= " A.titulo, ";
  17.        $Consulta .= " A.idCliente ,";
  18.        $Consulta .= " GC.idGC ";
  19.        $Consulta .= " FROM ";
  20.        $Consulta .= " anuncios A ";
  21.        $Consulta .= " INNER JOIN ";
  22.        $Consulta .= " usuarioclientes UC ON (A.idCliente=UC.idCliente) ";
  23.        $Consulta .= " INNER JOIN ";
  24.        $Consulta .= " perfiles P ON (UC.idPerfil=P.idPerfil) ";
  25.        $Consulta .= " INNER JOIN ";
  26.        $Consulta .= " categorias C ON (A.idCategoria=C.idCategoria) ";
  27.        $Consulta .= " LEFT OUTER JOIN ";
  28.        $Consulta .= " galeriasanuncios GA ON (A.idAnuncio=GA.idAnuncio) ";
  29.        $Consulta .= " LEFT OUTER JOIN ";
  30.        $Consulta .= " galeriaclientes GC ON (GA.idGaleriaCliente=GC.idGC) ";
  31.        $Consulta .= " WHERE ";
  32.        $Consulta .= $filtroCategoria;
  33.        $Consulta .= " (A.idEstado = 3) ";
  34.        $Consulta .= " AND ";
  35.        $Consulta .= " (P.idPerfil =65) ";
  36.        $Consulta .= " ORDER BY RAND()) T1 ";
  37.        $Consulta .= " GROUP BY ";
  38.        $Consulta .= " idCliente ";
  39.        $Consulta .= " LIMIT 7 ";  
  40.        
  41.        if($limite>0)
  42.            
  43.         // echo $Consulta;
  44.         if($this->EstadoDelaConexion())
  45.         {
  46.           $ResConsulta = $this->consultar($Consulta);
  47.           $this->cerrar_conexion ();
  48.           return $ResConsulta;
  49.         }
  50.     }
la consulta me funciona perfecto en el admin de mysql pero al pasarla a php me arroja el siguiente error :

MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') GROUP BY anuncios.idEstado, anuncios.idEstado, anuncios.idAnuncio, anunci' at line 1.
  #2 (permalink)  
Antiguo 14/07/2011, 13:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con subquery en php

En RAND()) te sobra un paréntesis, ¿o no es así?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/07/2011, 13:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: problemas con subquery en php

Cita:
Iniciado por pateketrueke Ver Mensaje
En RAND()) te sobra un paréntesis, ¿o no es así?
ese parentesis es el que sierra la subconsulta
  #4 (permalink)  
Antiguo 14/07/2011, 13:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con subquery en php

Sabes, una consulta que está escrita en una sola linea es difícil de depurar.

Lo ideal es que hicieras la consulta en varias lineas, así el mensaje de error te dice la linea exacta del problema.

Y ahora te dice que es en la linea 1, pero... ¡toda la consulta está en la linea 1!

Así mismo, sería bueno que imprimas la consulta -ya formateada en lineas- y leerla poco a poco para comprobar si está bien escrita.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/07/2011, 13:58
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: problemas con subquery en php

Cita:
Iniciado por pateketrueke Ver Mensaje
Sabes, una consulta que está escrita en una sola linea es difícil de depurar.

Lo ideal es que hicieras la consulta en varias lineas, así el mensaje de error te dice la linea exacta del problema.

Y ahora te dice que es en la linea 1, pero... ¡toda la consulta está en la linea 1!

Así mismo, sería bueno que imprimas la consulta -ya formateada en lineas- y leerla poco a poco para comprobar si está bien escrita.
Gracias por responder pateketrueke voy a revisar otraves si varia en algo y te aviso ok
  #6 (permalink)  
Antiguo 14/07/2011, 14:15
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: problemas con subquery en php

Cita:
Iniciado por pateketrueke Ver Mensaje
Sabes, una consulta que está escrita en una sola linea es difícil de depurar.

Lo ideal es que hicieras la consulta en varias lineas, así el mensaje de error te dice la linea exacta del problema.

Y ahora te dice que es en la linea 1, pero... ¡toda la consulta está en la linea 1!

Así mismo, sería bueno que imprimas la consulta -ya formateada en lineas- y leerla poco a poco para comprobar si está bien escrita.
Bueno aca estoy aun con el problema hice lo que me aconcejaste y aun asi me arroja el mismo error la verdad aun no se que problema presentara
  #7 (permalink)  
Antiguo 14/07/2011, 14:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con subquery en php

Bueno, pues muestranos la consulta formateada, es mas fácil que alguien veo lo que tu no.

Pero no me refiero al código, sino a la consulta cuando la imprimes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 14/07/2011, 14:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: problemas con subquery en php

Cita:
Iniciado por pateketrueke Ver Mensaje
Bueno, pues muestranos la consulta formateada, es mas fácil que alguien veo lo que tu no.

Pero no me refiero al código, sino a la consulta cuando la imprimes.
esto es lo que me deve imprimir la consulta :

idEstado |nombrePerfil | nombre| idCategoria| titulo| idCliente| idGC | totAnuncios|
3 | Cuenta | Propiedades | 9 | Parcela | 103 | 872 | 238|
3 | Cuenta | Maquinaria | 10 | Camion| 128| 923| 24|
3 | Cuenta | Riego | 15 | Dripnet| 142| 527 | 35|
3 | Cuenta | Tiendas| 21 | Tambor| 144| 521| 33|
3 | Cuenta| Tiendas| 21 | Producto| 675| 937| 35|
3 | Cuenta| Maquinaria| 10 | Auto| 805| 994| 5|

Última edición por Rasec101; 14/07/2011 a las 14:50
  #9 (permalink)  
Antiguo 14/07/2011, 15:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con subquery en php

No, no. Me refiero a esto:
Código PHP:
$sql 'tu consulta de SQL que genera error, formateada en lineas';
echo 
$sql
¿Puedes imprimir tu consulta antes de ejecutarla y mostrar lo que genera?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 15/07/2011, 03:12
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: problemas con subquery en php

Haz un echo $Consulta y luego te la llevas al PhpMyAdmin y lo ejecutas desde allí.

De todas formas, hay una cosa rarísima en este error. Te dice que el error está antes de ") GROUP BY anuncios.idEstado, anuncios.idEstado, anuncios.idAnuncio, anunci", pero si miras tu consulta, ese trozo no existe, el único GROUP BY que tienes es por idCliente. Puede ser que tengas algún remanente por ahí? Pon también el trozo en el que llamas a la función.

Un saludo.

PD: en la cabecera de la función pasas un $Cliente, que luego no usas nunca, quítalo.

Etiquetas: mysql, subquery, 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 04:28.