cardozo 0 Denunciar post Postado Março 14, 2011 Pessoal, tenho uma consulta através de mysql no bancod e dados com dados em html formatado arquivo de pesquisa: $id_query = mysql_query("SELECT * FROM BD WHERE Campo like '%$variavel%'); ai no BD tem um campo assim Campo = "<p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p>" $Variavel = "Antônio Monteiro de" ai na hora de filtar não aparece esse registro, pelo que vi é por causa da quebra de linha que tem entre Antônio Monteiro de como corrijo issu na consulta para que filtre tudo? pbrigado pela ajkuda Compartilhar este post Link para o post Compartilhar em outros sites
Marko D. Neto 0 Denunciar post Postado Março 15, 2011 amigo, pelo que eu entendi você não consegue retornar o campo na base de dados, a coluna com o dado que você quer pesquisar no banco de daods tem o nome de "campo"? Tenta colocar a variavel de pesquisa assim ó: $id_query = mysql_query("SELECT * FROM BD WHERE Campo like '%".$variavel."%'); Voce salva desse jeito: "<p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p>" Ja que sua pesquisa é por STRING e não por campo INT. Em um unico campo, ou são dois campos diferentes? Se possivel coloca como sua tabela no banco de dados esta criada, assim fica melhor pra te ajudar. E coloca a parte do código que contem a conexao com o banco + a função pesquisa. Compartilhar este post Link para o post Compartilhar em outros sites
cardozo 0 Denunciar post Postado Março 16, 2011 amigo, pelo que eu entendi você não consegue retornar o campo na base de dados, a coluna com o dado que você quer pesquisar no banco de daods tem o nome de "campo"? Tenta colocar a variavel de pesquisa assim ó: $id_query = mysql_query("SELECT * FROM BD WHERE Campo like '%".$variavel."%'); Voce salva desse jeito: "<p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p>" Ja que sua pesquisa é por STRING e não por campo INT. Em um unico campo, ou são dois campos diferentes? Se possivel coloca como sua tabela no banco de dados esta criada, assim fica melhor pra te ajudar. E coloca a parte do código que contem a conexao com o banco + a função pesquisa. Tabela Campo codigo = int Campo texto = longtext Dentro da tabela ta gravado assim Codigo = " 00001" Texto = "<p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p>" ai na conexão faço normal $conexao = mysql_pconnect("localhost","root","senha") or die("Conexão inválida"); mysql_select_db("BD",$conexao) or die("Banco de Dados inválido"); ps.: a conexão funciona direito agora na pesquisa faço assim $variavel = $_POST[texto]; $id_query = mysql_query("SELECT * FROM tabela WHERE Texto like '%$variavel%' ORDER BY -Codigo") pelo que vi e não sei se tem a ver issu, a intring consultada esta em um campo input e pode contar varias palavras em seguencia no meu caso teste pesquisar isso? pesquisa-> Rua Dr. Antônio Monteiro de Resende e na tabela ta gravado e formatado em html desssa maneira <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> como pesquisei Rua Dr. Antônio Monteiro de Resende e na tebela ta com um aquebra de linha entre antônio Monteiro, ele não encontra, as outras pesquisas funcionam, so que quando há essa quebra de linha não funfa de maneira ninhuma. Tentei ser o mais explicativo possivel. Compartilhar este post Link para o post Compartilhar em outros sites
Marko D. Neto 0 Denunciar post Postado Março 16, 2011 acredito que o erro esta na hora de receber o $_POST. Então coloca este input aqui no seu form: <input type="hidden" name="acao" value="buscar" /> E na hora de receber, em vez de voce utilizar: $variavel = $_POST[texto]; Utiliza isso: if (isset($_POST['acao']) == "buscar") { $palavra = $_POST['texto']; E coloca assim sua pesquisa: $id_query = mysql_query("SELECT * FROM tabela WHERE Texto LIKE '%".$palavra."%' ORDER BY Codigo ASC") Isso deve resolver seu problema. Precisa ver tambem se o campo texto da sua tabela esta com T maiusculo ou t minusculo, pois no sql, letras maiusculas e minusculas tem diferença. E la em cima você colocou como campo texto com t minusculo, mas na pesquisa do BD você colocou Texto com T maiusculo. Então se na tabela o T do campo texto estiver minusculo, essa pesquisa não vai funcionar. WHERE Texto LIKE '%".$palavra."%' Compartilhar este post Link para o post Compartilhar em outros sites
cardozo 0 Denunciar post Postado Março 17, 2011 acredito que o erro esta na hora de receber o $_POST. Então coloca este input aqui no seu form: <input type="hidden" name="acao" value="buscar" /> E na hora de receber, em vez de voce utilizar: $variavel = $_POST[texto]; Utiliza isso: if (isset($_POST['acao']) == "buscar") { $palavra = $_POST['texto']; E coloca assim sua pesquisa: $id_query = mysql_query("SELECT * FROM tabela WHERE Texto LIKE '%".$palavra."%' ORDER BY Codigo ASC") Isso deve resolver seu problema. Precisa ver tambem se o campo texto da sua tabela esta com T maiusculo ou t minusculo, pois no sql, letras maiusculas e minusculas tem diferença. E la em cima você colocou como campo texto com t minusculo, mas na pesquisa do BD você colocou Texto com T maiusculo. Então se na tabela o T do campo texto estiver minusculo, essa pesquisa não vai funcionar. WHERE Texto LIKE '%".$palavra."%' a questãod e colocar a letra t em maiuscula é somente aqui na hora de digitar, ta correto lá, outras pesquisas funciona corretamente, o problema é que nesste campo da tabela esta gravado texto em fotmato html e como mostri acima repare que fica gravado assim no campo Texto = "<p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p> " que na hora de exibir na tela fica assim Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro. Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias. ai digito na pesquisa o nome da rua que quero Antônio Monteiro de Resende so que no banco de dados ta gravado em formato html como mostrei acima, ja mudei na hora de gravar o html mas ele quebra automaticamente a frase Antônio Monteiro de REsente... entendeu? obrgiado pela resposta, fiz = você me falou acima, mas a pesquisa funciona corentamente em outras pesquisas Compartilhar este post Link para o post Compartilhar em outros sites
Marko D. Neto 0 Denunciar post Postado Março 18, 2011 engraçado, aqui funcionou normal. Ele mostrou a frase normal, as duas separadas bunitinho.. No seu acontece isso aqu né: Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro. Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias. Antes de postar o código pra você eu testei aqui, e ele mostrou a frase normal, sem quebrar as linhas, aqui quando testei ficou assim: Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro. Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias. Ve se voce não ta exibindo o essa formatação html, fora das tags: <html> e <body> Não se esqueça que por se tratar de formatação em html que esta salvo, na hora de exibir na tela precisa exibir dentro das tags <html> e <body> senão ele fica como u texto normal. Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
cardozo 0 Denunciar post Postado Março 18, 2011 engraçado, aqui funcionou normal. Ele mostrou a frase normal, as duas separadas bunitinho.. No seu acontece isso aqu né: Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro. Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias. Antes de postar o código pra você eu testei aqui, e ele mostrou a frase normal, sem quebrar as linhas, aqui quando testei ficou assim: Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro. Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias. Ve se voce não ta exibindo o essa formatação html, fora das tags: <html> e <body> Não se esqueça que por se tratar de formatação em html que esta salvo, na hora de exibir na tela precisa exibir dentro das tags <html> e <body> senão ele fica como u texto normal. Entendeu? vou colocaraqui o conteudo todo que esta dentro do campo Texto Texto = <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252"> <meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0"> <title>Câmara Municipal de Caratinga - Lei nº 2.201/1994</title> </head> <body> <font SIZE="4"><b> <p ALIGN="CENTER"><font face="Arial">Lei nº 2.201/1994</font></p> </b></font> <p ALIGN="JUSTIFY"><font face="Arial" size="2"><b>DISPÕE SOBRE DENOMINAÇÃO DE RUA NA SEDE DO MUNICÍPIO.</b></font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">A Câmara Municipal de Caratinga, por seus representantes, decreta e eu, Prefeito Municipal, sanciono a seguinte lei:</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 1º - Fica denominada Rua Dr. Antônio Monteiro de Resende a rua da Cooperativa, no Bairro Limoeiro.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 2º - Fica o Senhor Chefe do Executivo autorizado a mandar confeccionar as placas indicativas necessárias.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Art. 3º - Revogadas as disposições em contrário, esta lei entrar em vigor na data de sua publicação.</font></p> <p ALIGN="JUSTIFY"><font face="Arial" size="2">Mando, portanto, a quem o conhecimento e execução da presente lei pertencer, que a cumpra e a faça cumprir tão inteiramente como nela se contém.</font></p> <p ALIGN="CENTER"><font face="Arial" size="2">Caratinga, 23 de setembro de 1994</font></p> <p ALIGN="CENTER"> </p> <table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="100%" align="center"><strong><font face="Arial" size="2">Dário da Anunciação Grossi</font></strong></td> </tr> <tr> <td width="100%" align="center"><font face="Arial" size="2">Prefeito Municipal</font></td> </tr> </table> </body> </html> ai quando eu clino no numero do codigo, so mando exibir o conteudo do campo, a pesquisa é feita nesse campo, exibe normal, que que na ´pesquisa quando há palavras em diferneteslinhas ele não as encontra. nossa que coisa esquisita. Compartilhar este post Link para o post Compartilhar em outros sites
Marko D. Neto 0 Denunciar post Postado Março 19, 2011 Agora ficou claro.. é pq qual o método de pesquisa que você esta utilizando, voce quer procurar por mais de uma palavra, ai se sua tabela nao tiver o formato MyISAM, não funciona, pq para procurar por mais de 1 palavra no campo, o campo precisa estar com o indice FullTex ativado. Ai depois que você mudar sua tabela e o campo, é só você fazer assim na pesquisa: "SELECT * FROM Tabela WHERE MATCH ( Texto ) AGAINST ('".$variavel."')"); Entendeu? Muda o tipo da sua tabela pra MyISAM e o campo Texto em vez de longtext muda para FullTEXT. Ve se é isso que você quer fazer. Se eu entendi, voce quer pesquisar por mais de um termo no seu BD. Faz o teste ai. Compartilhar este post Link para o post Compartilhar em outros sites
cardozo 0 Denunciar post Postado Março 21, 2011 Agora ficou claro.. é pq qual o método de pesquisa que você esta utilizando, voce quer procurar por mais de uma palavra, ai se sua tabela nao tiver o formato MyISAM, não funciona, pq para procurar por mais de 1 palavra no campo, o campo precisa estar com o indice FullTex ativado. Ai depois que você mudar sua tabela e o campo, é só você fazer assim na pesquisa: "SELECT * FROM Tabela WHERE MATCH ( Texto ) AGAINST ('".$variavel."')"); Entendeu? Muda o tipo da sua tabela pra MyISAM e o campo Texto em vez de longtext muda para FullTEXT. Ve se é isso que você quer fazer. Se eu entendi, voce quer pesquisar por mais de um termo no seu BD. Faz o teste ai. Assim eu consigo pesquisar mais de duas palavras tranquilo, testei do jeito q falou e ele pega todos os registros que têm as palavras digitadas na caixa de pesquisa. p que ocorre é que quando o arquivo formatado html tem em suas linhas uma quebra de linha. ai ele não pega o que foi digitado. não sei mais o que fazer, pois preciso epsquisas exatamente como tá o nome obrgiado pela ajuda. Agora ficou claro.. é pq qual o método de pesquisa que você esta utilizando, voce quer procurar por mais de uma palavra, ai se sua tabela nao tiver o formato MyISAM, não funciona, pq para procurar por mais de 1 palavra no campo, o campo precisa estar com o indice FullTex ativado. Ai depois que você mudar sua tabela e o campo, é só você fazer assim na pesquisa: "SELECT * FROM Tabela WHERE MATCH ( Texto ) AGAINST ('".$variavel."')"); Entendeu? Muda o tipo da sua tabela pra MyISAM e o campo Texto em vez de longtext muda para FullTEXT. Ve se é isso que você quer fazer. Se eu entendi, voce quer pesquisar por mais de um termo no seu BD. Faz o teste ai. Assim eu consigo pesquisar mais de duas palavras tranquilo, testei do jeito q falou e ele pega todos os registros que têm as palavras digitadas na caixa de pesquisa. p que ocorre é que quando o arquivo formatado html tem em suas linhas uma quebra de linha. ai ele não pega o que foi digitado. não sei mais o que fazer, pois preciso epsquisas exatamente como tá o nome obrgiado pela ajuda. a tabela estava MyISAM, e testei da mani5ra que pediu, so que ainda não deu, to ate sem argumento aqui apra falar mais alguma coisa. se possivel pega esse codigo que montei para pesquisa e cola em um editr html e verá o que ele faz, faz uma quebra de linha e essa quebra que não tem como pesquisas, ou então copia esse codigo e cola no word, acho que assim verá o que quero dizer. obrigado mais uma vez. Compartilhar este post Link para o post Compartilhar em outros sites
ARS Informática 0 Denunciar post Postado Julho 11, 2011 Estou usando estes comendos, mas ainda tenho uma dúvida. Quando realiso a busca com o ( $sql_j = mysql_query("SELECT * FROM juridica_sul WHERE MATCH ( nome ) AGAINST ('".$palavra."')");) A busca vem com muitos dados, ex: Vou pesquisar - ( Pizzaria Alpes ) O resultado vem tando para pizzaria como para alpes, entende. É como se fosse dois like. Queria saber como posso fazer a seguinte busca: Digito no campo para buscar - ( Pizzaria Alpes ) A buscar procura as duas palavras na mesma frase, entende. O retorno viria, por exemplo: 1 - Alpes Empreendimentos, Lanches e Pizzaria; 2 - Pizzaria e Lanches Alpes; 3 - Alpes Pizzaria Entenderam ? Estou tentando fazer isso a não consigo, alguém poderia me ajudar ??? Muito obrigado. Estou usando estes comandos abaixo, mas ainda tenho uma dúvida. Quando realiso a busca com o ( $sql_j = mysql_query("SELECT * FROM juridica_sul WHERE MATCH ( nome ) AGAINST ('".$palavra."')") A busca vem com muitos dados, ex: Vou pesquisar - ( Pizzaria Alpes ) O resultado vem tando para pizzaria como para alpes, entende. É como se fosse dois like. Queria saber como posso fazer a seguinte busca: Digito no campo para buscar - ( Pizzaria Alpes ) A buscar procura as duas palavras na mesma frase, entende. O retorno viria, por exemplo: 1 - Alpes Empreendimentos, Lanches e Pizzaria; 2 - Pizzaria e Lanches Alpes; 3 - Alpes Pizzaria Entenderam ? Tipo, aparecer as duas palavras na frase não importando a ordem. Estou tentando fazer isso a não consigo, alguém poderia me ajudar ??? Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites