§tRuTe® Postado Maio 7, 2004 Denunciar Share Postado Maio 7, 2004 então não é? ow...eu tava tentando aqui fazer tipo, um sistema de busca, q busca em todas as clunas da tabela indicada, ta funcionando, olha ae....$busca=$_POST[busca];$host="localhost";$user="";$senha="";$conexao= mysql_connect($host,$user, $senha)or die ("Erro:" .mysql_error());$db=mysql_select_db("teste", $conexao) or die("Erro:".mysql_error());$consulta= "SELECT * FROM teste_2 WHERE id LIKE '%$busca%' OR nome LIKE '%$busca%' OR email LIKE '%$busca%'";$query=mysql_query($consulta, $conexao)or die("Erro:" .mysql_error());while($ver=mysql_fetch_array($query)){echo "<BR><BR>";echo $ver[id]." - ";echo $ver[nome]." - ";echo $ver." - ";echo $ver[idade];}ae o q eu queria saber, é se tem jeito, de no resultado, mostrar em qual campo, foi encontrado a palavra, e tb, se tem jeito, apenas a palavra buscada em negrito, nos resultados, já q é mostrada toda a linha em q ela foi encontrada......e mais uma coisa na da a v com isso ae.....tipo..qual a diferenca entre mysql_fetch_assoc e mysql_fetch_array??eu tava lenu la no site do php.net, e não vi muita diferenca?tem muita?vlw.....falow!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Illidan Postado Maio 7, 2004 Denunciar Share Postado Maio 7, 2004 Fala Strute... pra você saber em qual campo ocorreu a busca, faça um teste assim:Defina a variável $x = 0; fora do laço "while". Dentro do laço, faça o seguinte:while($ver=mysql_fetch_array($query)) {$x++;if (eregi($busca, $ver[id])) { $ocorreu_id[$x] = 1; }if (eregi($busca, $ver[nome])) { $ocorreu_nome[$x] = 1; }if (eregi($busca, $ver)) { $ocorreu_email[$x] = 1; }echo ...echo ......}Entendeu? Aí, por exemplo, se a variável $ocorreu_email[3] estiver definida (ou seja, valer "1"), é porque a palavra da busca foi encontrada na linha nº 3 do campo e-mail.Quanto ao negrito, é só mudar os comandos "echo" para:echo preg_replace("/($busca)/si", "<b>\\1</b>", $ver[id]) . " - ";echo preg_replace("/($busca)/si", "<b>\\1</b>", $ver[nome]) . " - ";echo preg_replace("/($busca)/si", "<b>\\1</b>", $ver) . " - ";echo $ver[idade];Eu não mudei o comando para o campo idade porque eu vi que você não incluiu ele na busca.Quanto à sua outra pergunta, sinceramente eu não sei responder... sempre usei só o mysql_fetch_array. E sou feliz assim Falou! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 toretto_PHP Postado Maio 7, 2004 Denunciar Share Postado Maio 7, 2004 e mais uma coisa na da a v com isso ae.....tipo..qual a diferenca entre mysql_fetch_assoc e mysql_fetch_array??eu tava lenu la no site do php.net, e não vi muita diferenca?tem muita?MYSQL_FETCH_ASSOC();Este comando associa a existencia de dois campos num resultado de uma busca. Se TRUE, ele vai dar precedência ao último, se FALSE, vai retornar o valor no único campo correspondente ao nome citado em SELECT...Vamos supor que eu tenho dois campos nome. Por uma necessidade qualquer tive que criar com o mesmo nome.Se eu chamar o mysql_fetch_assoc(); ele vai associar os dois e resgatar os valores buscados. Dispensa o uso de mysql_fetch_array($query, MYSQL_ASSOC) que equivale à mesma funcionalidade desta função...Foi isso ae q eu entendi... beleza?qualquer dúvida postaefalou ae Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 §tRuTe® Postado Maio 7, 2004 Autor Denunciar Share Postado Maio 7, 2004 eu axo q entendi sim sobre o assoc.......e vlw ae Illidan....funciono certim o bagui do negrio na palavra buscada...!!!! mas tipo...eu não entendi o uso q tantas barras "/" no meio do script...qual o porque delas??pra q o /si ali?e tipo, sobre o preg_replace, pra q ele serve?eu fui no php.net e a documentacao dele ta em ingles....e tipo....la sobre o while, p[ra mostrar em qual campo a palavra foi achada, eu não entendi muito bem, depois eu vou ter q fazer uma condicao venu se $x for igual a 1 ou 2 ou 3, pra ae sim ver em qual campo ele ta?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Illidan Postado Maio 7, 2004 Denunciar Share Postado Maio 7, 2004 Fala Strute!Funcionou, né? É cara, eu adorei essa função... pena que ainda não consegui aprender muita coisa sobre a sintaxe de expressões regulares. Bom, essa função faz isso: ela busca e substitui uma expressão regular (que é escrita através desses códigos esquisitos aí)... esse bloco "\\1" faz referência ao conteúdo que está entre os dois primeiros parênteses do primeiro parâmetro do script, que é a $busca. Aí ele não substitui o conteúdo dela, entendeu? Só acrescenta o <b> e </b> antes e depois.Se quiser ler mais, entre em: http://br.php.net/manual/pt_BR/pcre.pattern.syntax.phpTá em inglês, tb... mas pode ajudar um pouco.Essa função é muito boa... uma coisa legal que eu consegui fazer com ela foi colocar o título de uma página numa variável. Por exemplo, imagine que $html contém o código fonte de uma página... aí, pra pegar o título:$titulo = preg_replace("'.*<title>|</title>.*'si", "", $html);Legal, né? Neste caso, ele apaga tudo antes do <title> (inclusive essa tag), dá um intervalo e apaga todo o resto a partir do </title>. Aí, o que sobra é o título Outra coisa que consegui fazer com essa função foi criar um método pra limpar tags PHP e ASP. É que eu estou montando um sistema de busca, então ele puxava o código da página direto, sem limpar essas tags... aí, já viu, né!!! Mas eu criei um esquema que limpa só essas tags, sem alterar o resto da página. Ficou jóia... eu pretendo disponibilizar esse script de busca LOGO! Ele tá pronto já, é só eu hospedar.Como você pode ver, essa função é muito poderosa. Se eu aprender mais coisas dela, eu te falo. Vou procurar referências em português, tb...================ EDITANDO ================Pra quê você quer saber em quais campos a palavra da $busca foi encontrada? Dependendo de como for, fica mais fácil fazer isso de outra maneira...Falou! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 §tRuTe® Postado Maio 7, 2004 Autor Denunciar Share Postado Maio 7, 2004 vish!vlw ae pela explicacao!hehe..eu axo q eu entendi...... e tipo...é mais por curiosidade mesmo, saber em qual campo a palavra foi achada, é mais pra eu ir aprendenu a mexer não é?...ir me acostumanu com as sintaxes do php...mas vlw ae de qualquer jeito!!vlw.......falow!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Illidan Postado Maio 7, 2004 Denunciar Share Postado Maio 7, 2004 De nada... Agora vou criar um post falando do script de busca que eu fiz... dá uma olhada lá Um abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 §tRuTe® Postado Maio 7, 2004 Autor Denunciar Share Postado Maio 7, 2004 oia....hehe...eu vi la o tópico...hehe..bem loko ele heim...oh...só mais uma duvida aqui.......tipo...você me passo de um jeito la pra ver em qual campo o result foi achado...mas como eu não entendi muito bem, eu só mudei o final....fico assim...while($ver=mysql_fetch_array($query)){if (eregi($busca, $ver[id])) {echo "<br>Encontrado registro no campo ID"; }if (eregi($busca, $ver[nome])) {echo "<br>Encontrado registro no campo NOME"; }if (eregi($busca, $ver)) {echo "<br>Encontrado resgistro no campo EMAIL"; }if(eregi($busca, $ver[idade])){echo "<br> Encontrado registro no campo IDADE";}ae tipo....ele vai no while não é?...então aparece em todas as linhas, onde o resultado foi achad..eu queria q tipo...ele pegasse os q iriam ser mostrados, e depois mostrasse apenas uma vez.....hehe....tem jeito???vlw....falow!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
§tRuTe®
então não é? ow...eu tava tentando aqui fazer tipo, um sistema de busca, q busca em todas as clunas da tabela indicada, ta funcionando, olha ae....
ae o q eu queria saber, é se tem jeito, de no resultado, mostrar em qual campo, foi encontrado a palavra,
e tb, se tem jeito, apenas a palavra buscada em negrito, nos resultados, já q é mostrada toda a linha em q ela foi encontrada......
e mais uma coisa na da a v com isso ae.....
tipo..qual a diferenca entre mysql_fetch_assoc e mysql_fetch_array??
eu tava lenu la no site do php.net, e não vi muita diferenca?
tem muita?
vlw.....falow!!!
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.