jcao 0 Denunciar post Postado Julho 4, 2006 Estou tentando fazer uma pesquisa por aproximacao, ou seja, tenho um campo na tabela que e alfanumerico. O campo chama-se contrato e eu entro com um valor em em um formulario e quero que ele me retorne todos os valores que contiverem pelo menos aqueles caracteres que eu entrar no formulario. O codigo que estou usando e o seguinte $id_empresa = $_SESSION['id_empresa']; $contrato = $_REQUEST['contrato']; // $query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato LIKE '$contrato'" OR die("FALHA AO BUSCAR".mysql_error()); $query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato = '%$contrato%'" OR die("FALHA AO BUSCAR".mysql_error()); $result = mysql_query($query); $nrows = mysql_num_rows($result); $navegador = $_REQUEST['navegador']; if(!isset($navegador)) $navegador = 0; //numero de itens que aparecerá por página, se não houver uma variavel limite, o limite será 10 $limite = $_REQUEST['limite']?$_REQUEST['limite']:10; // $query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato LIKE '$contrato'" OR die("FALHA AO BUSCAR".mysql_error()); $sql = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato = '%$contrato%'" OR die("FALHA AO BUSCAR".mysql_error());O problema e que nao esta retornando nada, qualquer que seja a combinacao de caracteres que eu entre. Ja revi todas as possibilidades e nao estou achando a saida... Agradeco a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Julho 5, 2006 Você não está usando a cláusula LIKE. O coringa é para ser utilizado nela. Exemplo: SELECT ... WHERE nome LIKE '%b%' http://dev.mysql.com/doc/refman/5.0/en/str...-functions.html Compartilhar este post Link para o post Compartilhar em outros sites
jcao 0 Denunciar post Postado Julho 5, 2006 Fiz a correcao mas agora ele da erro $query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato LIKE '%$contrato%'" OR die("FALHA AO BUSCAR".mysql_error()); //$query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato = '$contrato'" OR die("FALHA AO BUSCAR".mysql_error()); $result = mysql_query($query); $nrows = mysql_num_rows($result); $navegador = $_REQUEST['navegador']; if(!isset($navegador)) $navegador = 0; //numero de itens que aparecerá por página, se não houver uma variavel limite, o limite será 10 $limite = $_REQUEST['limite']?$_REQUEST['limite']:10; $query = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato LIKE '%$contrato%'" OR die("FALHA AO BUSCAR".mysql_error()); // $sql = "SELECT * FROM processo WHERE id_empresa = $id_empresa AND contrato = '$contrato'" OR die("FALHA AO BUSCAR".mysql_error()); $sql .= " LIMIT $navegador,$limite"; $resultado = mysql_query($sql) or die ("FALHA AO BUSCAR contratos".mysql_error()); $i=0; FALHA AO BUSCAR contratosVocê tem um erro de sintaxe no seu SQL próximo a 'LIMIT 0,10' na linha 1 Compartilhar este post Link para o post Compartilhar em outros sites
jcao 0 Denunciar post Postado Julho 5, 2006 Pessoal, ja descobri o erro, foi um descuido meu...em vez de colocar o Select em $sql ele estava sendo colocado em $queryDesculpem pelo incomodo, mas valeu pelas dicas.... Compartilhar este post Link para o post Compartilhar em outros sites