Ir para conteúdo

POWERED BY:

Arquivado

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

correia97

[Resolvido] função - alterar um parametro

Recommended Posts

Boa tarde galera criei a função abaixo e ela ficou mais ou menos da forma que eu gostaria, a penas 1 coisa não consigo deixar da forma que me foi solicitado

É o seguinte no momento em que eu vou printar na tela o resultado da pesquisa eu gostaria que ele execute conforme descrito abaixo:

 

Tenho a seguinte String "Se você consegue se manter calmo quando todos perderam a cabeça, provavelmente não entendeu a gravidade da situação." no meu banco

 

E um usuario pesquisou a pela palavra "cabeça"

 

eu gostaria de exibir no resultado o seguinte: a palavra que ele digitou em negrito e mais 12 caracteres a frenre desta palavra e mais 12 antes desta palavra exemplo:

 

" perderam a cabeça, provavelme"

 

Até o momento não axei uma explicação, codigo ou tutorial de forma que eu consiga entender como se faz isso gostaria que vocês me ajudassem

 

 

<?php
function Busca($tabela, $campo, $campo2, $categoria, $busca)
{
	$query ="SELECT * FROM $tabela WHERE $campo LIKE '%$busca%' or $campo2 LIKE '%$busca%' ORDER BY id ASC";
	$sql = mysql_query($query) or die("Erro na query <strong>{$query}</strong>: " .mysql_error());
	if(mysql_num_rows($sql)>0){
		echo "Resultado em: {$categoria} para <strong>{$busca}:</strong><br />";
		while ($result = mysql_fetch_assoc($sql)){
			$result[$campo] = substr($result[$campo],0,200);
			echo "<a href='restutado/tab={$tabela}&id={$result['id']}' title='{$result['id']}'>{$result[$campo]}</a><br />";
		}
	}
}
?>

Obs: Crie esta função com o objetivo de otimizar o meu codigo para não ficar repetindo varias e varias vezes os mesmos comandos pois vou utilizala para pesquisar em 5 tabelas simultanea mente e essa foi a melhor forma que consegui fazer caso alguém possa compartilhar esperiencias ou conhecimentos para melhorar este codigo pode ficar a vontade que eu so vou agradecer

Compartilhar este post


Link para o post
Compartilhar em outros sites

com strpos() você pega a posição da palavra buscada (primeira e última letras). Depois usa substr() para pegar os 12 caracteres anteriores e posteriores.

 

Outra saída melhor e mais bonita é usar expressão regular. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resumindo o que o Beraldo disse é isso aqui:

 

<?php

$string = "Se você consegue se manter calmo quando todos perderam a cabeça, provavelmente não entendeu a gravidade da situação.";
$key = "consegue";
$pos_key = strpos($string, $key);
$lengh_key = strlen($key);

$tamanho_key = $pos_key+$lengh_key;

$corta1 = substr($string,0,$pos_key);

if(substr($corta1,-12) === false) {

$corta = $corta1.'<b>'.$key.'</b>'.substr($string, $tamanho_key, 12);

echo $corta;
}
else{
		
$corta = substr($corta1,-12).'<b>'.$key.'</b>'.substr($string, $tamanho_key, 12);
echo $corta;
	
}


?>

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resumindo o que o Beraldo disse é isso aqui:

 

<?php

$string = "Se você consegue se manter calmo quando todos perderam a cabeça, provavelmente não entendeu a gravidade da situação.";
$key = "consegue";
$pos_key = strpos($string, $key);
$lengh_key = strlen($key);

$tamanho_key = $pos_key+$lengh_key;

$corta1 = substr($string,0,$pos_key);

if(substr($corta1,-12) === false) {

$corta = $corta1.'<b>'.$key.'</b>'.substr($string, $tamanho_key, 12);

echo $corta;
}
else{
		
$corta = substr($corta1,-12).'<b>'.$key.'</b>'.substr($string, $tamanho_key, 12);
echo $corta;
	
}


?>

flw

 

Muito obrigado era exatamente isto que eu precisava vlw

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.