Ir ao conteúdo
  • Cadastre-se

Ajuda Dreamweaver SQL::busca de palavra em um campo text


jrabelha

Posts recomendados

AJUDEMMM POR FAVOR.........................

Bom pessoal, dei uma procurada nos foruns e num achei nada relacionado, então to criando este novo tópica para que um de vocês possa me ajudar.

É o seguinte, tenho uma busca que pretendo fazer onde quero que esta busca filtre por um intervalo de int e uma palavra chave, onde esta palavra chave tem que ser encontrada em um campo text.

Resumindo, num formulário tem: Ano início (ano_ini) ____ Ano Fim (ano_fim) ____ Palavra Chave (pal_chave) ______________________

Certo, meu sql é mais o menos esse:

SELECT noticia.noticia FROM noticia WHERE noticia.ano_ref >= ano_ini AND noticia.ano_ref <= ano_fim AND noticia.noticia LIKE %pal_chave%

Pois é isso num está dando certo, num pega a palavra chave. Alguém tem uma solução para esse problema???

Exemplo:

Notícia 1: "olá tudo bem" (text) Ano de Referencia Noticia 1: 1990 (int)

Notícia 2: "Parabéns, gol marcado" (text) Ano de Referencia Noticia 1: 1990 (int)

Ai quando o usuario digita lá: Ano INICIO: 1900 / Ano FIM: 2000 / Palavra chave: "tudo"

Essa busca é para buscar somente a Noticia 1, pois ela tem a palavra "tudo" em seu conteudo.

Lembrando, o problema é só na palavra chave, o intervalo está OK.

Falou e desde já obrigado.

Ahhh, Banco de dados Mysql 5.0. O formulário é em PHP. valeu

Link para o comentário
Compartilhar em outros sites

bom pessoal, mais uma dúvida. Estou desenvolvenso uma web com banco de dados pelo dreamweaver e está quase tudo beleza, implemeto, apreto F12 e abre o browser (firefox) e faço as consultas, tudo perfeito. Agora fui la na pasta www do EasyPhp, onde está hostedado, e coloco pra abrir (com firefox), primeiramente que no dreamweaver a pagina está limpa, sem nenhum erro, ja quando abro diretamente pelo firefox aparece algumas parte do código e o pior de tudo não faz nenhuma consulta, num aparece nada.

Como pode isso, no mesmo firefox, quando testado pelo mozilla, está tudo perfeito e quando abro diretamente pelo mesmo firefox aparece parte de código e não faz as consultas! Ajudem por favor!

bom pessoal, mais uma dúvida. Estou desenvolvenso uma web com banco de dados pelo dreamweaver e está quase tudo beleza, implemeto, apreto F12 e abre o browser (firefox) e faço as consultas, tudo perfeito. Agora fui la na pasta www do EasyPhp, onde está hostedado, e coloco pra abrir (com firefox), primeiramente que no dreamweaver a pagina está limpa, sem nenhum erro, ja quando abro diretamente pelo firefox aparece algumas parte do código e o pior de tudo não faz nenhuma consulta, num aparece nada.

Como pode isso, no mesmo firefox, quando testado pelo mozilla, está tudo perfeito e quando abro diretamente pelo mesmo firefox aparece parte de código e não faz as consultas! Ajudem por favor!

Por favor pessoal, ajudem aí. To passando as imagens. A primeira é a que foi aberta usando o dreamweaver, quando acesso o browser diretamente pelo programa.

http://img146.imagevenue.com/img.php?image=76820_imagem1_dreamweaver_122_722lo.JPG

E essa outra é a que foi aberta diretamente pelo browser.

http://img18.imagevenue.com/img.php?image=76835_imagem1_aberta_diretamente_do_browser_122_350lo.JPG&loc=loc350

galera por favor me ajudem ai, as notícias que coloquei no banco tem acento e "ç", mas andei dando uma pesquisada que o php não suporta esses tipos, mas que tem como corrigir. Se alguém souber me ajuda ai

SELECT noticia.noticia FROM noticia WHERE noticia.ano_ref >= '$ano_ini' AND noticia.ano_ref <= '$ano_fim' AND noticia.noticia LIKE '%$pal_chave%'

Tentou colocar as aspas simples nas variáveis como acima?

olá amigo, eu fiz e funcionou da forma '%'+pal_chave+'%'. vem k, tem como eu fazer com que a busca seja feita somente pelos campos de formularios preenchido???

Link para o comentário
Compartilhar em outros sites

Eu nao sabia disso, mais se você não está conseguindo exibir acentos e letras com ç, você pode usar echo htmlentities($str);, ou codificar a palavra antes, ex: base64_encode($str), base64_decode($str).

Para exibir o "ç", acentos e simbolos, em alguns navegadores, você primeiro tem que passar para "entidade HTML", usando a função htmlentities($str);

Link para o comentário
Compartilhar em outros sites

o resultado final de meu SQL é:

SELECT noticia.fn_n, noticia.ano_ref_noticia, noticia.noticia, noticia.pagina_n, noticia.num_livro_n, noticia.data_n

FROM noticia

WHERE noticia.ano_ref_noticia = ano_ref_noticia_pg AND noticia.num_livro_n = num_livro_pg AND (noticia.noticia LIKE %pal_chave% OR noticia.p_chave1 LIKE %pal_chave% OR noticia.p_chave2 LIKE %pal_chave% OR noticia.p_chave3 LIKE %pal_chave%)

só que, não consigo buscar palavras com acento.

é o PHP eu sei, eu corregi a parte de quando eu buscava do banco, vinha todo desconfigurado o texto, ai concertei, mas agora essa parte da busca, que não pega com acento é nova!

Eu nao sabia disso, mais se você não está conseguindo exibir acentos e letras com ç, você pode usar echo htmlentities($str);, ou codificar a palavra antes, ex: base64_encode($str), base64_decode($str).

Para exibir o "ç", acentos e simbolos, em alguns navegadores, você primeiro tem que passar para "entidade HTML", usando a função htmlentities($str);

rpa eu to usando isso aqui: utf8_encode($str) e deu certo, pelo menos em ocalhost, firefox, sera que vou ter problemas futuramente. esse htmlentities($str) é padrão é?

vem k, nao consigo fazer consulta de palavras com assento no banco, sabe como reverter isso?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

1º Dreamweaver e qualquer semelhante gera lixo no código fonte. Você deve sempre revisar códigos feitos nesses programas, sempre. Daí é que entra seu conhecimento na linguagem mesmo.

2º Acento pode ser pela codificação da página, deve estar como UTF-8 quando para mostrar acentos sem transformação html seria ISO-8859-1. O PHP dispõe de algumas funções para tanto, como htmlentities(), dentre outras.

3º Tem um lance da data nas suas imagens... Pra pesquisar pelo formato do banco (aaaa-mm-dd) ou você dá um explode() na variável da data e inverte os dados ou utiliza o STR_TO_DATE($variavelData,'%d/%m/$Y') dento da sua própria query.

Link para o comentário
Compartilhar em outros sites

para exibir o "ç", acentos e simbolos, em alguns navegadores, você primeiro tem que passar para "entidade html", usando a função htmlentities($str);

como assim, nÃo entendi. valeu pela forÇa

1º Dreamweaver e qualquer semelhante gera lixo no código fonte. Você deve sempre revisar códigos feitos nesses programas, sempre. Daí é que entra seu conhecimento na linguagem mesmo.

2º Acento pode ser pela codificação da página, deve estar como UTF-8 quando para mostrar acentos sem transformação html seria ISO-8859-1. O PHP dispõe de algumas funções para tanto, como htmlentities(), dentre outras.

3º Tem um lance da data nas suas imagens... Pra pesquisar pelo formato do banco (aaaa-mm-dd) ou você dá um explode() na variável da data e inverte os dados ou utiliza o STR_TO_DATE($variavelData,'%d/%m/$Y') dento da sua própria query.

oh cara, valeu pela atenção ai. o lance das datas ta bom, eu to usando umas funcoes aqui. A transformação, tipo, pra mostar as palavras com acento to usando a funçã utf8_encode() e deu certo.

Quanto ao lixo de código, o pior é q quando visualizo pelo atalho do feamweaver ta beleza, quando vou na pasta aparece aquilo, e o lixo que aparece é a abertura de chaves para condiçoes do tipo , se a busca for dirente de vazio mostre, se tiver mais que 4 resultados mostar o next pag, por exemplo e isso se eu tirar vai dar erro. Tipo na condição de mostrar um layoutzinho la só se tiver busca realizada, como eu vou corrigir isso?

e aproveitando sua disposição, é o seguite, usei essa função pra mostar os acentos e tudo mais, utf8_encode(), mas tenho uma consulta aqui por palavra chave, e ta funcionando bem, só que quando eu coloco uma palava chave com acento, não consigo buscar nada. o que será?

Link para o comentário
Compartilhar em outros sites

Se no seu banco ela tiver acento normal, trata para apresentar na tela, e "destrata" para consultar no banco.

E ai amigo, esta funcionando só que ainda permace um erro, onde eu não consigo fazer consultas de palavras com acento.

Quanto a impressão dos carcteres com com acento e ç ... o resultado foi o seguinte, as elterações no código:

<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

e na saida da noticia:

<?php echo utf8_encode($row_Recordset_Busca1['noticia']); ?>

Ja em relação a query de consulta por palavra chave, fiz da seguinte forma (minha consulta procura um palavra em quatro campos: 1 text e 3 varchar (banco mysql)):

SELECT noticia.fn_n, noticia.ano_ref_noticia, noticia.noticia, noticia.pagina_n, noticia.num_livro_n, noticia.data_n

FROM noticia

WHERE noticia.ano_ref_noticia = ano_ref_noticia_pg AND noticia.num_livro_n = num_livro_pg AND (noticia.noticia LIKE %pal_chave% OR noticia.p_chave1 LIKE %pal_chave% OR noticia.p_chave2 LIKE %pal_chave% OR noticia.p_chave3 LIKE %pal_chave%)

esse é o código que eu coloco no dreamweaver, o que ele gera no php é esse:

$query_Recordset_Busca2 = sprintf("SELECT noticia.fn_n, noticia.ano_ref_noticia, noticia.noticia, noticia.pagina_n, noticia.num_livro_n, noticia.data_n FROM noticia WHERE noticia.ano_ref_noticia = %s AND noticia.num_livro_n = %s AND (noticia.noticia LIKE %s OR noticia.p_chave1 LIKE %s OR noticia.p_chave2 LIKE %s OR noticia.p_chave3 LIKE %s) ", GetSQLValueString($ano_ref_noticia_pg_Recordset_Busca2, "int"),GetSQLValueString($num_livro_pg_Recordset_Busca2, "int"),GetSQLValueString("%" . $pal_chave_Recordset_Busca2 . "%", "text"),GetSQLValueString("%" . $pal_chave_Recordset_Busca2 . "%", "text"),GetSQLValueString("%" . $pal_chave_Recordset_Busca2 . "%", "text"),GetSQLValueString("%" . $pal_chave_Recordset_Busca2 . "%", "text"));

Quanto a questão das datas, estou utilizando duas funções, fiz uma php só pra estas funções e quando preciso, faço um import, as funções são:

<?php

function dateformat($data){ // formata datas do mysql(padrão americano) para o formato brasileiro....

$data = explode("-", $data);

$datanova = array_reverse($data);

return $datanova[0]."/".$datanova[1]."/".$datanova[2];

}

?>

<?php

//colocar nos get:

function ConverteDatabr($Data){

if (strstr($Data, "/"))//verifica se tem a barra /

{

$d = explode ("/", $Data);//tira a barra

$rstData = "$d[2]-$d[1]-$d[0]";//separa as datas $d[2] = ano $d[1] = mes etc...

return $rstData;

} elseif(strstr($Data, "-")){

$d = explode ("-", $Data);

$rstData = $d[2]."/".$d[1]."/".$d[0];

return $rstData;

}else{

return "Data invalida";

}

}

?>

Quando vou imprimir uma data faço:

<?php echo dateformat($row_Recordset_Busca2['data_n']); ?>

E quando o usuario digita a data brasileira e eu tenho que colocar americana para fazer a culdulta faço:

$date_inicio_Recordset_Busca4 = ConverteDatabr($_GET['date_inicio']);

ME RESTA AGORA CONULTAR AS PALAVRAS COM ACENTO, QUE AINDA NÃO CONSEGUI.

Link para o comentário
Compartilhar em outros sites

Se no seu banco ela tiver acento normal, trata para apresentar na tela, e "destrata" para consultar no banco.

olá amigo, eu num faço nenhum tratamento quendo a pessoa faz a busca não, ou seja o que ele coloca no formulário é o que eu passo como parametro pra busca. Eu só trato quendo imorimo do banco. O que será isso?

TIPO LA NO BANCO TEM O CAMPO noticia, UM EXEMPLO "notícia nova", se minha palavra chave for nova ele busca, se for notícia (com acento, igual ao do banco) ele não busca.

??????????????????????????????????

Link para o comentário
Compartilhar em outros sites

Eu nao sabia disso, mais se você não está conseguindo exibir acentos e letras com ç, você pode usar echo htmlentities($str);, ou codificar a palavra antes, ex: base64_encode($str), base64_decode($str).

Para exibir o "ç", acentos e simbolos, em alguns navegadores, você primeiro tem que passar para "entidade HTML", usando a função htmlentities($str);

e ai parceiro, o que você acha de eu num ta conseguindo fazer a buscas por palaras que possuem acento? o que pode ser?

TIPO LA NO BANCO TEM O CAMPO noticia, UM EXEMPLO "notícia nova", se minha palavra chave for nova ele busca, se for notícia (com acento, igual ao do banco) ele não busca.

??????????????????????????????????

Link para o comentário
Compartilhar em outros sites

Tenta dar um html_entity_decode() na variável antes de buscar.

Rpz, tu me falou disso ai, ai lembrei que tava usando utf8_encode() para imprimir, ai tb lembrei que ja tinha visto o utf8_decode(). Agora, a ultima duvida, espero eu, qual a diferença entre utf8_decode() e html_entity_decode() ?????

Ah, valeu pela força ai, me ajudou muito. fico muito grato pela atençã, de esta sempre respondendo. se precisar de algo, estamos ai. Falou man. obrigado!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!