Ir para conteúdo

POWERED BY:

Arquivado

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

edu_php

[Resolvido] Como Marcar Uma Pesquisar PHP

Recommended Posts

Olá pessoal!

 

Estou com uma dificuldade, sou iniciante em PHP. Gostaria de que sempre que o usuario pesquisasse no banco de dados, o resultado da pesquisa fosse marcado em negrito e vermelho. Ou seja, a pessoa digitou a letra "a" no campo de pesquisar "pesquisa" para buscar todos os nomes de pessoas que iniciam por "a" o resultado fosse assim:

 

Arnaldo

Adriano

Amanda

Anderson

Amarildo

Alessandro

 

A seguir postarei o código do script que fiz para tentar fazer isso, mas tá errado. http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

Me ajudem por favor.

 

<title>Marcar Pesquisa PHP</title>

<form method="get"action="<?php $_SERVER['PHP_SELF']?>">
<input type="text" name="pesquisa">
<input type="submit">
</form>

<?php
$conec = mysql_connect("localhost", "root", "");
$db = mysql_select_db("adm");
$sql = "select * from aluno where nome like '$texto1%' ";
$query = mysql_query($sql, $conec);

$pesquisa = "<font color = 'red'>".$_GET['pesquisa]."</font>";
echo "Você pesquisou por: ".$pesquisa."<br>";
echo "Resultado da sua pesquisa: <br><br>";

while ($linha = mysql_fetch_array($query)){
$nome = $linha['nome'];

$n_nome_ver = substr($pesquisa, $nome);

$n_nome_nom = substr($nome, $pesquisa);

echo $n_nome_ver.$n_nome_nom;

echo "<br>";

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja Bem Vindo Edu, seria isso:

 

<title>Marcar Pesquisa PHP</title>

<form method="get"action="<?php $_SERVER['PHP_SELF'];?>">
<input type="text" name="pesquisa">
<input type="submit">
</form>

<?php
$pes=$_GET['pesquisa'];
$conec = mysql_connect("localhost", "root", "");
mysql_select_db('test',$conec);
$sql =mysql_query("SELECT * FROM aluno WHERE nome LIKE '$pes%'")or die(mysql_error($conec));

$cor = "<font color = 'red'>" .$p_letra=substr($pes,0,1)."</font>";

echo 'Você quis pesquisar por:'.str_replace(substr($pes,0,1),$cor,$pes);

echo 'Resultado da sua pesquisa: <br><br>';
if($sql){
while ($linha = mysql_fetch_array($sql)){

$cor = "<font color = 'red'>" .$p_letra2=substr($linha['nome'],0,1)."</font>";

echo str_replace(substr($linha['nome'],0,1),$cor,$linha['nome']);

echo '<br>';
 }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Alaerte! Seu código foi 100%

Na pressão acabei conseguindo aqui também. Para as pessoas que tiverem a mesma dificuldade e precise do mesmo resultado segue o código novamente. Porém, o código a seguir não deixará somente a primeira letra da pesquisa em negrito e cor vermelho, mas sim todo o conteúdo que o usuario colocou no campo. Por exemplo, o usuario digitou: "El", o resultado seria:

 

Eliana

Elleonor

Ellida

Elliane

Ellinaldo

Elliomar

 

Segue o novo código:

 

:grin: <title>Marcar Pesquisa PHP</title>

<form method="get"action="<?php $_SERVER['PHP_SELF'];?>">
<input type="text" name="pesquisa">
<input type="submit">
</form>

<?php
$pes=$_GET['pesquisa'];
$conec = mysql_connect("localhost", "root", "");
mysql_select_db('test',$conec);
$sql =mysql_query("SELECT * FROM aluno WHERE nome LIKE '$pes%'")or die(mysql_error($conec));

$pes = "<b><font color = 'red'>" .$_GET['pesquisa']."</font></b>";

echo 'Você quis pesquisar por: '.$pes;

echo "<br><br>";

echo 'Resultado da sua pesquisa: <br><br>';

if($sql){

while ($linha = mysql_fetch_array($sql)){

$nome = $linha['nome'];



$nc = substr($pes, $nome);
$n_nome = substr($nome, strlen($_GET['pesquisa']));

echo $nc.$n_nome;

echo "<br>";

	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, aproveitando...

 

Estou tentando fazer um código que exiba somente os nomes que começem por letra específica, mas não tá funcionando.

 

O que fiz:

$l = funcaoLista();
for(blablabla)
{
	//Lista só os começam por uma letra específica
	if (isset($_REQUEST['l']))
	{
		$pos = strpos($nome,$_REQUEST['l']);
		if ($pos === 0)
		{
			print $nome;
		}
	//Lista todos
	} else {
		print $nome
	}
}

Resumindo, se existir letra em $_REQUEST['l'], só vai exibir os que comecem por essa letra, caso contrário, lista todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.