Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
AA
Massaki ,
Supondo que eu queira fazer filtros dinamicos , como por exemplo
Filtrar por Solicitante , Por Etiqueta é possivel ?
Sim, mas você teria que concatenar a string de busca, conforme a necessidade
$sql = 'SELECT * FROM tabela WHERE cancelado = 0;
if ($filtrosolicitante) {
$sql .= " AND solicitante = '$filtrosolicitante'";
}
E assim por diante, vai acrescentando filtros
Tem como fazer um exemplo ?
pra mim entender melhor .
Digamos que queira filtrar o nome 'Jose' e 'Maria' ( pertencem a tabela solicitante ) e o modelo 'Alho bom' ( pertence a tabela etiqueta ) .
como ficaria ?
Eu fiz assim :
$sql = "SELECT * FROM tkprint WHERE solicitante='Ednaldo Rodrigues' ";
if ($filtrosolicitante) {
$sql .= " OR solicitante = '$filtrosolicitante'";
}
echo $sql;
Também funciona ?
Está retornado a seguinte sequencia :
SELECT * FROM tkprint WHERE solicitante='Ednaldo Rodrigues' OR solicitante = 'Thiago Emanoel'
//que tal assim, não ficaria fácil pra você?
<?php
function aplicacao_de_filtros($id = null, $Impressora = null, $Quantidade = null, $Solicitante = null, $data_hora = null, $ip = null, $etiqueta = null) {
$filtro = null;
$condicao = null;
if ($id != null) {
$filtro[] .= "(id LIKE '%$id%') ";
}
if ($Impressora != null) {
$filtro[] .= "(Impressora LIKE '%$Impressora%') ";
}
if ($Quantidade != null) {
$filtro[] .= "(Quantidade LIKE '%$Quantidade%') ";
}
if ($Solicitante != null) {
$filtro[] .= "(Solicitante LIKE '%$Solicitante%') ";
}
if ($data_hora != null) {
$filtro[] .= "(data_hora LIKE '%$data_hora%') ";
}
if ($ip != null) {
$filtro[] .= "(ip LIKE '%$ip%' ";
}
if ($etiqueta != null) {
$filtro[] = "(etiqueta LIKE '%$etiqueta%') ";
}
if (is_array($filtro)) {
$condicao = "WHERE ".implode(" OR ", $filtro)."";
}
$sql = "SELECT * FROM tkprint $condicao";
return $sql;
}
echo aplicacao_de_filtros("1", "HP", 2, "eu", "28-05-2015", "127.0.0.1", "etiqueta");Android , rsrs
Fiquei curioso , vou testar.
>
//que tal assim, não ficaria fácil pra você?
<?php
function aplicacao_de_filtros($id = null, $Impressora = null, $Quantidade = null, $Solicitante = null, $data_hora = null, $ip = null, $etiqueta = null) {
$filtro = null;
$condicao = null;
if ($id != null) {
$filtro[] .= "(id LIKE '%$id%') ";
}
if ($Impressora != null) {
$filtro[] .= "(Impressora LIKE '%$Impressora%') ";
}
if ($Quantidade != null) {
$filtro[] .= "(Quantidade LIKE '%$Quantidade%') ";
}
if ($Solicitante != null) {
$filtro[] .= "(Solicitante LIKE '%$Solicitante%') ";
}
if ($data_hora != null) {
$filtro[] .= "(data_hora LIKE '%$data_hora%') ";
}
if ($ip != null) {
$filtro[] .= "(ip LIKE '%$ip%' ";
}
if ($etiqueta != null) {
$filtro[] = "(etiqueta LIKE '%$etiqueta%') ";
}
if (is_array($filtro)) {
$condicao = "WHERE ".implode(" OR ", $filtro)."";
}
$sql = "SELECT * FROM tkprint $condicao";
return $sql;
}
echo aplicacao_de_filtros("1", "HP", 2, "eu", "28-05-2015", "127.0.0.1", "etiqueta");
Android , tem como comentar ?
Não entendi onde será variavel e onde será dado do banco.
$sql="SELECT * FROM tkprint WHERE etiqueta like 'Pacific Cumbuca' OR etiqueta like 'Alho Bom'";