pero primero anexo mis tablas:
tabla: empleados
id_empleados, nombres, apellidos, telefono, email, direccion
tabla: cuentas_bancarias
id_cuentas_bancarias, id_empleados, numero_cuenta, id_cuentas, id_bancos
tabla: cuentas
id_cuentas, cuentas
tabla: bancos
id_bancos, bancos
en el primer select se muestra todos los empleados registrados, cuando escojamos un empleado en el primer select en el segundo select me muestra que bancos tiene registrado ese empleado hasta hay todo bien mi problema es en el tercer select y cuarto select, si un empleado tiene registrado dos, tres, cuatros bancos registrados cuando escojo el primer banco que tiene registrado me muestra los dos tipos de cuentas y no deberia ser ya que solo deberia mostrar la que tiene asociada a esa cuenta si es ahorro o corriente y cuando trato de escoger otro banco no me muestra nada.
anexo mi consulta y una imagen para ver si me entiendo mejor
Código SQL:
Ver original
FUNCTION listar_cuentas($id_bancos = ''){ $resultado = FALSE; $consulta = "SELECT cuentas_bancarias.id_cuentas_bancarias, cuentas_bancarias.id_empleados, cuentas_bancarias.id_cuentas, cuentas_bancarias.id_bancos, cuentas.id_cuentas, cuentas.cuentas FROM cuentas_bancarias INNER JOIN cuentas ON cuentas_bancarias.id_cuentas=cuentas.id_cuentas"; IF($id_bancos != ''){ $consulta .= " WHERE id_empleados = :id_bancos"; } $consulta .= " ORDER BY id_cuentas_bancarias"; $conexion = conectaBaseDatos(); $sentencia = $conexion->PREPARE($consulta); $sentencia->bindParam('id_bancos',$id_bancos); try { IF(!$sentencia->EXECUTE()){ print_r($sentencia->errorInfo()); } $resultado = $sentencia->fetchAll(); $sentencia->closeCursor(); } catch(PDOException $e){ echo "Error al ejecutar la sentencia: \n"; print_r($e->getMessage()); } RETURN $resultado; } FUNCTION listar_numero_cuentas($id_cuentas = ''){ $resultado = FALSE; $consulta = "SELECT cuentas_bancarias.id_cuentas_bancarias, cuentas_bancarias.id_empleados, cuentas_bancarias.id_cuentas, cuentas_bancarias.numero_cuenta, cuentas.id_cuentas, cuentas.cuentas FROM cuentas_bancarias INNER JOIN cuentas ON cuentas_bancarias.id_cuentas=cuentas.id_cuentas"; IF($id_cuentas != ''){ $consulta .= " WHERE id_empleados = :id_cuentas"; } $consulta .= " ORDER BY cuentas"; $conexion = conectaBaseDatos(); $sentencia = $conexion->PREPARE($consulta); $sentencia->bindParam('id_cuentas',$id_cuentas); try { IF(!$sentencia->EXECUTE()){ print_r($sentencia->errorInfo()); } $resultado = $sentencia->fetchAll(); $sentencia->closeCursor(); } catch(PDOException $e){ echo "Error al ejecutar la sentencia: \n"; print_r($e->getMessage()); } RETURN $resultado; }
ojo: se entiende que un usuario puede tener varias cuentas en un mismo banco
imagen: https://prntscr.com/fkateb