Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2017, 17:19
Avatar de aviweb2015
aviweb2015
 
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
problema con consulta

hola amigos tengo 4 select dependientes pero tengo un problema en dos consulta

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
  1. FUNCTION listar_cuentas($id_bancos = ''){
  2.     $resultado = FALSE;
  3.     $consulta = "SELECT
  4. cuentas_bancarias.id_cuentas_bancarias,
  5. cuentas_bancarias.id_empleados,
  6. cuentas_bancarias.id_cuentas,
  7. cuentas_bancarias.id_bancos,
  8. cuentas.id_cuentas,
  9. cuentas.cuentas
  10. FROM cuentas_bancarias INNER JOIN cuentas ON cuentas_bancarias.id_cuentas=cuentas.id_cuentas";
  11.    
  12.     IF($id_bancos != ''){
  13.         $consulta .= " WHERE id_empleados = :id_bancos";
  14.     }
  15.  
  16.     $consulta .= " ORDER BY id_cuentas_bancarias";
  17.    
  18.     $conexion = conectaBaseDatos();
  19.     $sentencia = $conexion->PREPARE($consulta);
  20.     $sentencia->bindParam('id_bancos',$id_bancos);
  21.    
  22.     try {
  23.         IF(!$sentencia->EXECUTE()){
  24.             print_r($sentencia->errorInfo());
  25.         }
  26.         $resultado = $sentencia->fetchAll();
  27.        
  28.         $sentencia->closeCursor();
  29.     }
  30.     catch(PDOException $e){
  31.         echo "Error al ejecutar la sentencia: \n";
  32.             print_r($e->getMessage());
  33.     }
  34.    
  35.     RETURN $resultado;
  36. }
  37.  
  38.  
  39.  
  40. FUNCTION listar_numero_cuentas($id_cuentas = ''){
  41.     $resultado = FALSE;
  42.     $consulta = "SELECT
  43. cuentas_bancarias.id_cuentas_bancarias,
  44. cuentas_bancarias.id_empleados,
  45. cuentas_bancarias.id_cuentas,
  46. cuentas_bancarias.numero_cuenta,
  47. cuentas.id_cuentas,
  48. cuentas.cuentas
  49. FROM cuentas_bancarias INNER JOIN cuentas ON cuentas_bancarias.id_cuentas=cuentas.id_cuentas";
  50.    
  51.     IF($id_cuentas != ''){
  52.         $consulta .= " WHERE id_empleados = :id_cuentas";
  53.     }
  54.  
  55.     $consulta .= " ORDER BY cuentas";
  56.    
  57.     $conexion = conectaBaseDatos();
  58.     $sentencia = $conexion->PREPARE($consulta);
  59.     $sentencia->bindParam('id_cuentas',$id_cuentas);
  60.    
  61.     try {
  62.         IF(!$sentencia->EXECUTE()){
  63.             print_r($sentencia->errorInfo());
  64.         }
  65.         $resultado = $sentencia->fetchAll();
  66.        
  67.         $sentencia->closeCursor();
  68.     }
  69.     catch(PDOException $e){
  70.         echo "Error al ejecutar la sentencia: \n";
  71.             print_r($e->getMessage());
  72.     }
  73.    
  74.     RETURN $resultado;
  75. }


ojo: se entiende que un usuario puede tener varias cuentas en un mismo banco

imagen: https://prntscr.com/fkateb
__________________
yoclens avilan