How to use DNA?

Asked

Viewed 62 times

1

I wonder where I can put the AND tipregistro = 'mysql' so that when you have !empyt and when you don’t have to bring the tipregistro = 'mysql'

this is my query

public function RetornaAtualizacoesFuncionarios($data,$codusuario){ 
        $WHERE = array() ;
       if( !empty( $codusuario    ) ) {$WHERE[] = "codusuario = $codusuario";};
       if( !empty( $data   ) ) {$WHERE[] = "DATE_FORMAT(data,'%Y-%m') = '$data' AND tipregistro = 'mysql' ";};

    try {

         $Query = "SELECT 
                        DISTINCT(funcionarios.usuario),
                        date_format(funcionarios.data,'%d/%m/%Y %H:%i:%s') as data ,
                        codigo,
                        nome 
                            FROM funcionarios
                                      "; 

        if( !empty($WHERE) )$Query .= ' WHERE '.implode(' AND  ', $WHERE );

        // echo "<pre>"; print_r($Query);

        include_once $_SESSION['pmodel'].'/mysqlconnection_class.php';
               $p_sql = MysqlConnection::getInstance()->prepare($Query);

                $_retorno = array(); 
                if($p_sql->execute()) {
                    while ($_result = $p_sql->fetch(PDO::FETCH_ASSOC))  {
                        $_retorno[] = $_result; 
                    }
                }
                return $_retorno;
            } catch (PDOException $e) {
                echo $e->getMessage();
            }
        }
    }

1 answer

1


Just insert the condition into the array $WHERE outside the if (!empty($data)):

public function RetornaAtualizacoesFuncionarios($data,$codusuario){ 
    $WHERE = array() ;
    if( !empty( $codusuario    ) ) {$WHERE[] = "codusuario = $codusuario";};
    if( !empty( $data   ) ) {$WHERE[] = "DATE_FORMAT(data,'%Y-%m') = '$data'";};
    $WHERE[] = "tipregistro = 'mysql'";

    try {

         $Query = "SELECT 
                        DISTINCT(funcionarios.usuario),
                        date_format(funcionarios.data,'%d/%m/%Y %H:%i:%s') as data ,
                        codigo,
                        nome 
                            FROM funcionarios
                                      "; 

        if( !empty($WHERE) )$Query .= ' WHERE '.implode(' AND  ', $WHERE );

        // echo "<pre>"; print_r($Query);

        include_once $_SESSION['pmodel'].'/mysqlconnection_class.php';
               $p_sql = MysqlConnection::getInstance()->prepare($Query);

                $_retorno = array(); 
                if($p_sql->execute()) {
                    while ($_result = $p_sql->fetch(PDO::FETCH_ASSOC))  {
                        $_retorno[] = $_result; 
                    }
                }
                return $_retorno;
            } catch (PDOException $e) {
                echo $e->getMessage();
            }
        }
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.