correia97 1 Denunciar post Postado Abril 17, 2009 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
Beraldo 864 Denunciar post Postado Abril 17, 2009 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
Red FeniX 4 Denunciar post Postado Abril 22, 2009 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
correia97 1 Denunciar post Postado Abril 23, 2009 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