Jump to content

saullobueno

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About saullobueno

  1. saullobueno

    LIKE não funciona junto com BETWEEN

    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]; ?>
  2. saullobueno

    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."')")
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.