Framework MEDOO

RicAlmeida

Power Member
Estou a utilizar o framework MEDOO, estou a ter dificuldades nas opções do where
Ao pesquisa os dados numa tabela, tenho o campo 'maquina', no caso de eu seleccionar maquina procurar os dos referentes a essa maquina, caso contrario pesquisa.me todos os dados.

Neste momento tenho este codigo:
Código:
$configDB = liga();
$database = new Medoo($configDB);
$pesquisa = $database->select("maquina_manutencao", 
                                [
                                    "[>]maquina" => ["ID_Maq" => "ID"]
                                ], [
                                    "maquina.Design",
                                    "maquina_manutencao.Data",
                                    "maquina_manutencao.Responsavel",
                                    "maquina_manutencao.Descricao",
                                    "maquina_manutencao.Valor",
                                    "maquina_manutencao.Obs",
                                    "maquina_manutencao.ID"
                                ], [ 
                                    "AND" => [ 
                                        "maquina_manutencao.ID_Maq[=]" => $_POST['maquina']

                                    ],
                                    "ORDER" => [ "maquina_manutencao.Data" => "DESC", "maquina_manutencao.ID" =>"DESC" ] 
                                ]);

o que estou a tentar fazer é que se o $_POST['maquina'] for igual a 0 pesquise todos os dados
 
Não podes fazer ali uma condição? Era tão mais simples...

Por exemplo, crias uma função em que passas um parametro:

função xpto (int maquinaid) {

faz cenas...;
e mais cenas;

if (maquinaid is null) then
não coloca nada
else
coloca a query do where que vai buscar a variavel a partir do maquinaid, e fazes mesmo um where iddoraiodamaquina = maquinaid

}
 
Consegui dar a volta de outra forma, secalhar não da melhor forma, mas que esta a funcionar.
Verifico se houve escolha da maquina e altero o sinal da condição, caso o valor seja 0 uso '>' se for maior que 0 uso '=', assim:
Código:
$maquina = (isset($_POST['ano'])) ? $_POST['maquina'] : '0';
$sinal = ($maquina > 0) ? '=' : '>';

$configDB = liga();
$database = new Medoo($configDB);
$pesquisa = $database->select("maquina_manutencao", 
                                [
                                    "[>]maquina" => ["ID_Maq" => "ID"]
                                ], [
                                    "maquina.Design",
                                    "maquina_manutencao.Data",
                                    "maquina_manutencao.Responsavel",
                                    "maquina_manutencao.Descricao",
                                    "maquina_manutencao.Valor",
                                    "maquina_manutencao.Obs",
                                    "maquina_manutencao.ID"
                                ], [ 
                                    "AND" => [ 
                                        "maquina_manutencao.ID_Maq[$sinal]" => $maquina

                                    ],
                                    "ORDER" => [ "maquina_manutencao.Data" => "DESC", "maquina_manutencao.ID" =>"DESC" ] 
                                ]);
 
Back
Topo