Foros del Web » Programando para Internet » PHP » Zend »

[SOLUCIONADO] join en consulta

Estas en el tema de join en consulta en el foro de Zend en Foros del Web. Hola estoy intentado crear esta consulta en mi modelo y me aparece el siguiente error: Message: Select query cannot join with another table. La consulta ...
  #1 (permalink)  
Antiguo 15/05/2013, 09:07
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
join en consulta

Hola estoy intentado crear esta consulta en mi modelo y me aparece el siguiente error:

Message: Select query cannot join with another table.

La consulta que quiero crear es esta:

Código:
SELECT * FROM mydb.usuario as u, mydb.admin as a WHERE a.dni=u.dni and u.dni LIKE \''.$dni.'\' and a.nombre LIKE \''.$nombre.'\' and a.apellidos LIKE \''.$apellidos.'\'
Lo he hecho de esta manera:

Código PHP:
$select $this->select()
             ->
from('usuario')
             ->
joinUsing('admin''dni')
             ->
where('nombre LIKE ?'$nombre)
             ->
where('apellidos LIKE ?'$apellidos);
        return 
$this->fetchAll($select); 
¿Por qué me aparece este error?
  #2 (permalink)  
Antiguo 15/05/2013, 09:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: join en consulta

Si estas dentro de un Zend_Db_Table, no puedes hacer eso, tienes que usar un Select normal, prueba haciendo $select = $this->getAdapter()->select()

Saludos.
  #3 (permalink)  
Antiguo 15/05/2013, 09:53
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Respuesta: join en consulta

Gracias por responder tan rápido. He probado así y me aparece el siguiente error.

Message: SQLSTATE[42000]: Syntax error or access violation: 1064 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 '' at line 1

Si lo hago de esta manera sí me funciona.

Código PHP:
Ver original
  1. $db = Zend_Db_Table::getDefaultAdapter();
  2.         $select = new Zend_Db_Select($db);
  3.         $select->from('usuario')
  4.              ->joinInner('cliente', 'cliente.dni=usuario.dni')
  5.              ->where('usuario.dni LIKE ?', $dni)
  6.              ->where('nombre LIKE ?', $nombre)
  7.              ->where('apellidos LIKE ?', $apellidos);
  8.         return $db->fetchAll($select);

¿Me podrias explicar qué es lo que hace getDefaultAdapter? Gracias.
  #4 (permalink)  
Antiguo 15/05/2013, 11:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: join en consulta

Pues eso es porque tienes une rror en tu consulta, revisa la consulta generada imprimiendo el $select (echo (string) $select)

Saludos.

Etiquetas: join
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:21.