

saullobueno
Members-
Content count
2 -
Joined
-
Last visited
Community Reputation
0 ComumAbout saullobueno

Contato
-
Depois de muito pesquisar cheguei na solução abaixo. Acho q transformar as variáveis apenas em POST, tirar as aspas simples dos BETWEENs e colocar o formulario com enctype multipart, ele enfim funcionou. Acho q foi isso: <?php if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){ $tipocarro = $_POST['tipoProdutoCarro']; if(isset($_POST['tipoProdutoCarro']) && empty($_POST['tipoProdutoMoto'])) { $tipochecked = "tipoProduto LIKE 'Carro' AND "; } else { if(isset($_POST['tipoProdutoMoto']) && empty($_POST['tipoProdutoCarro'])) { $tipochecked = "tipoProduto LIKE 'Moto' AND "; } else { if(isset($_POST['tipoProdutoCarro']) && isset($_POST['tipoProdutoMoto'])) { $tipochecked = "tipoProduto LIKE '%%' AND "; } else { $tipochecked = "tipoProduto LIKE '%%' AND "; } } } $conservacao = $_POST['conservacaoProduto']; if(isset($_POST['conservacaoProdutoNovo']) && empty($_POST['conservacaoProdutoUsado'])) { $conservacaochecked = "conservacaoProduto LIKE 'Novo' AND "; } else { if(isset($_POST['conservacaoProdutoUsado']) && empty($_POST['conservacaoProdutoNovo'])) { $conservacaochecked = "conservacaoProduto LIKE 'Usado' AND "; } else { if(isset($_POST['conservacaoProdutoNovo']) && isset($_POST['conservacaoProdutoUsado'])) { $conservacaochecked = "conservacaoProduto LIKE '%%' AND "; } else { $conservacaochecked = "conservacaoProduto LIKE '%%' AND "; } } } $marca = $_POST['marcaProduto']; $modelo = $_POST['modeloProduto']; $minano = $_POST['MinANO']; $maxano = $_POST['MaxANO']; $minpreco = $_POST['MinPRECO']; $maxpreco = $_POST['MaxPRECO']; $minkm = $_POST['MinKM']; $maxkm = $_POST['MaxKM']; } $produto = mysql_query("SELECT * FROM produto WHERE ".$tipochecked." ".$conservacaochecked." marcaProduto LIKE '%".$marca."%' AND modeloProduto LIKE '%".$modelo."%' AND anoProduto BETWEEN $minano AND $maxano AND valorProduto BETWEEN $minpreco AND $maxpreco AND kmProduto BETWEEN $minkm AND $maxkm") or die(mysql_error()); if(@mysql_num_rows == '0'){ echo "Não encontramos resultados no momento."; }else{ while($res_produto=mysql_fetch_array($produto)){ $idProduto = $res_produto[0]; $tipoProduto = $res_produto[1]; $imagemProduto = $res_produto[2]; $marcaProduto = $res_produto[3]; $modeloProduto = $res_produto[4]; $conservacaoProduto = $res_produto[5]; $anoProduto = $res_produto[6]; $kmProduto = $res_produto[7]; $corProduto = $res_produto[8]; $portasProduto = $res_produto[9]; $transmissaoProduto = $res_produto[10]; $combustivelProduto = $res_produto[11]; $valorProduto = $res_produto[12]; $destaqueProduto = $res_produto[13]; $visivelProduto = $res_produto[14]; $opcionaisProduto = $res_produto[15]; $observacoesProduto = $res_produto[16]; $datacriacaoProduto = $res_produto[17]; $dataalteracaoProduto = $res_produto[18]; $usuariocriacaoProduto = $res_produto[19]; $usuarioalteracaoProduto = $res_produto[20]; ?>
-
saullobueno started following LIKE não funciona junto com BETWEEN
-
Algo de errado com esta consulta? Está aparecendo todos os dados sem nenhuma filtragem. Mas quando eu tiro os LIKEs ela funciona ou se eu tiro os BETWEEN e deixo os LIKEs ela funciona. Uma só funciona sem a outra. Por que? $produto = mysql_query("SELECT idProduto, tipoProduto, imagemProduto, marcaProduto, modeloProduto, conservacaoProduto, anoProduto, kmProduto, corProduto, portasProduto, transmissaoProduto, combustivelProduto, valorProduto, destaqueProduto, visivelProduto, opcionaisProduto, observacoesProduto, 'datacriacaoProduto', 'dataalteracaoProduto', usuariocriacaoProduto, usuarioalteracaoProduto FROM produto WHERE (tipoProduto LIKE '%".$tipo."%') OR (marcaProduto LIKE '%".$marca."%') OR (modeloProduto LIKE '%".$modelo."%') OR (conservacaoProduto LIKE '%".$conservacao."%') OR (anoProduto BETWEEN '".$minano."' AND '".$maxano."') OR (valorProduto BETWEEN '".$minpreco."' AND '".$maxpreco."') OR (kmProduto BETWEEN '".$minkm."' AND '".$maxkm."')")