Ver Mensaje Individual
  #13 (permalink)  
Antiguo 13/03/2009, 12:09
Avatar de poloche
poloche
 
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
De acuerdo Respuesta: multiples condiciones en join usando zend framework

bueno logre resolver esta duda de la siguiente manera
Código PHP:

public function findBySubmenu($id_submenu$rol) {
        
$db $this->getAdapter ();
        
$select $db->select ();
        
$select->distinct true );
        
$select->from ( array ('a' => 'accion' ), 
                array (
'id_accion''nombre''titulo''url_accion''img' ) );
        
$select->joinLeft ( array ('ar' => 'accion_rol' ), "a.id_accion=ar.accion and ar.rol='$rol'", array ('rol' ) );
        
$select->where 'a.submenu=?'$id_submenu );
        
$select->order 'ar.rol' );
        
$select->order 'a.nombre' );
        
$results $db->fetchAll $select );
        
$acciones = array ();
        foreach ( 
$results as $resu ) {
            
$accion = new Accion ( );
            
$accion->setId $resu ['id_accion'] );
            
$accion->setNombre $resu ['nombre'] );
            
$accion->setTitulo $resu ['titulo'] );
            
$accion->setAccion $resu ['url_accion'] );
            
$accion->setImagen $resu ['img'] );
            
$asignado false;
            if (
$resu ['rol'] != ""){
                
$asignado true;
            }
            
$accion->setAsigned $asignado );
            
$acciones [] = $accion;
        }
        return 
$acciones;
    } 
veran esta un poco mas elaborado que al princiio pero la consulta es esencialmente la misma puedo poner multiples condiciones en un join en este caso el problema que reportaba era que me reconocia la condicion como si fuera una columna de la tabla, pero eso era por la forma en la que yo enviaba los datos
Cita:
$select->joinLeft ( array ('ar' => 'accion_rol' ), 'a.id_accion=ar.accion and ar.rol="$rol"', array ('rol' ) );
malllllllll
se deberia pasar de esta manera
Cita:
$select->joinLeft ( array ('ar' => 'accion_rol' ), "a.id_accion=ar.accion and ar.rol='$rol'", array ('rol' ) );
si se dan cuenta el error iva al pasar el parametro del join mandaba con comillas simples el segundo parametro y deberia ir en comillas dobles ", y la variable $rol pasada con ' comillas simples
__________________
no estare lejos, por que siempre estare junto a ti