KaitoO Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 Boa tarde...estou com problema na realização de uma busca com mais de 1 campo no DBsegue abaixo o formulario pra analisarem<form action="avancada.php?estado=<?php echo $estado = $_GET['estado']; ?>" method="post"> <fieldset> <legend>Busca avançada</legend> <label>Qtde de dormitorio</label> <select name="dormitorio"> <option value="">Selecione</option> <option value="Apartamento 2 dormitórios">Dois dorm</option> <option value="Apartamento 3 dormitórios">Três dorm</option> </select> <label>Valor do Apartamento</label> <select name="valor"> <option value="">Selecione</option> <option value="250">Até R$ 250.000,00</option> <option value="251">R$251.000,00 a R$ 400.000,00</option> <option value="401">R$401.000,00 a R$ 600.000,00</option> <option value="601">R$601.000,00 a R$ 900.000,00</option> <option value="901">Acima de R$ 900.000,00</option> </select> <label>Fase da Obra</label> <select name="fase"> <option value="">Selecione</option> <option value="Breve Lançamento">Breve Lançamento</option> <option value="Lançamento">Lançamento</option> <option value="Em Obras">Em Obras</option> <option value="Pronto para morar">Pronto para morar</option> <option value="Entrega em 2009">Entrega em 2009</option> </select> <label>Área Privativa</label> <select name="area"> <option value="">Selecione</option> <option value="100">até 100m²</option> <option value="101">de 101m² a 150m²</option> <option value="151">de 151m² a 200m²</option> <option value="201">de 201m² a 300m²</option> <option value="300">acima de 300m²</option> </select> <input type="submit" value="Enviar" name="submit" /> </fieldset> </form> Na versão 4 do php ele funcionava perfeitamente... porém instalei a versao 5 e deu uns conflitos segue abaixo o codigo da pagina q executa a busca <?php include("banco.php"); if(isset($_POST["valor"])){ if($_POST["valor"]==250){ $minimo = 1000.00; $maximo = 250000.00; } if($_POST["valor"]==251){ $minimo = 251000.00; $maximo = 400000.00; } if($_POST["valor"]==401){ $minimo = 401000.00; $maximo = 600000.00; } if($_POST["valor"]==601){ $minimo = 601000.00; $maximo = 900000.00; } if($_POST["valor"]==901){ $minimo = 901000.00; $maximo = 1900000.00; } $valor = $_POST["valor"]; $sql_valor = 'AND valor <= {$maximo} AND valor >= {$minimo}'; //cria auxiliar pro sql } //AREA PRIVATIVA if(isset($_POST["area"])){ if($_POST["area"]==100){ $min = 1; $max = 100; } if($_POST["area"]==101){ $min= 101; $max = 150; } if($_POST["area"]==151){ $min = 151; $max = 200; } if($_POST["area"]==201){ $min = 201; $max = 300; } if($_POST["area"]==300){ $min = 301; $max = 901; } $area = $_POST["area"]; $sql_area = 'AND area_privativa <= {$max} AND area_privativa >= {$min}'; //cria auxiliar pro sql }else{ unset($sql_area); } if (isset($_POST["fase"])){ //Verifica se est preenchido $fase = $_POST["fase"]; $sql_fase = " AND fase_obra LIKE '%$fase%' "; }else{ unset($sql_fase); } $dormitorio = htmlspecialchars(addslashes($_POST['dormitorio']), ENT_QUOTES); if(isset($_POST['submit'])) { $res = "SELECT * FROM empreendimento WHERE tipo_imovel LIKE '%$dormitorio%' $sql_valor $sql_fase $sql_area"; $query = mysql_query($res);//adiciona sql auxiliar echo $res; $resultnum = mysql_num_rows($query); if($resultnum>0) { while($linha=mysql_fetch_array($query)) { // $projeto = $linha["empreendimento"]; $cidade = $linha["cidade"]; $imovel = $linha["tipo_imovel"]; $area = $linha["area_privativa"]; $fase = $linha["fase_obra"]; $valor = $linha["valor"]; echo "<ul>"; echo "<li>$projeto</li>"."<li>$cidade</li>"."<li>$imovel</li>"."<li>$area"."m²</li>"."<li>$fase</li>"."<li>$valor</li>"; echo "</ul>"; } echo "<a href=\"java script:parent.history.back();\">voltar</a>"; }else{ echo "nada encontrado"; } } ?>o erro q acontece é na QUERY... com o seguinte alertaWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\construtora\avancada.php on line 88nada encontrado porem não sei o q pode estar acontecendoalguém pode me dar uma ajuda?Agradeço desde já =D :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 Troca isso:$query = mysql_query($res);Por isso:$query = mysql_query($res) OR DIE(mysql_error());Assim o MySQL vai informar qual o problema na query. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KaitoO Postado Março 16, 2009 Autor Denunciar Share Postado Março 16, 2009 então... fiz issoYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} AND valor >= {$minimo} AND fase_obra LIKE '%Em Obras%' AND area_privativa <=' at line 1apareceu issotenho q trocar o } e acrescentar '}? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 Triar as chaves e concatena as variáveis... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KaitoO Postado Março 16, 2009 Autor Denunciar Share Postado Março 16, 2009 (editado) então!!$sql_valor = 'AND valor <= "$maximo" AND valor >= "$minimo"'; //cria auxiliar pro sqlfiz desse jeitoele não trouxe nenhum erroporem!!no banco tem 1 valor q eu setei!!creio q esteja na concatenaçao ainda não é?? Editado Março 16, 2009 por KaitoO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DeeKilleer Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 $res = "SELECT * FROM empreendimento WHERE tipo_imovel LIKE '%$dormitorio%' $sql_valor $sql_fase $sql_area"; $query = mysql_query($res); while($linha=mysql_fetch_array($query)) { $row = mysql_num_rows($query); if($row>0) { $projeto = $linha["empreendimento"]; $cidade = $linha["cidade"]; $imovel = $linha["tipo_imovel"]; $area = $linha["area_privativa"]; $fase = $linha["fase_obra"]; $valor = $linha["valor"];me diga se deu certo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 16, 2009 Denunciar Share Postado Março 16, 2009 $sql_valor = 'AND valor <= "$maximo" AND valor >= "$minimo"'; //cria auxiliar pro sqlVocê não concatenou nada ai....$sql_valor = 'AND valor <= '.$maximo.' AND valor >= '.$minimo; //cria auxiliar pro sql Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 KaitoO Postado Março 16, 2009 Autor Denunciar Share Postado Março 16, 2009 (editado) isso eu fiz!!sei o q é concatenar!! deu erroNotice: Undefined variable: maximo in C:\wamp\www\construtora\avancada.php on line 45Notice: Undefined variable: minimo in C:\wamp\www\construtora\avancada.php on line 45o modo do DeeKiller seguiu em frente... mas não encontrou nada! Editado Março 16, 2009 por KaitoO Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
KaitoO
Boa tarde...
estou com problema na realização de uma busca com mais de 1 campo no DB
segue abaixo o formulario pra analisarem
Na versão 4 do php ele funcionava perfeitamente... porém instalei a versao 5 e deu uns conflitos segue abaixo o codigo da pagina q executa a buscao erro q acontece é na QUERY... com o seguinte alerta
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\construtora\avancada.php on line 88
nada encontrado
porem não sei o q pode estar acontecendo
alguém pode me dar uma ajuda?
Agradeço desde já =D :blush:
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.