Amigo, levantando uma outra questão sobre seu caso, se tiver muitos registros no banco e/ou textos grandes, não seria melhor utilizar a busca full-text do mysql ao invés do like?

Em 26/11/10 09:00, Rafael V. de Oliveira escreveu:
Eric, foi mesmo o teu código que ajudou-me imenso!!!

Só tive que fazer algumas modificações, simples, mas tive que fazer.

$range= 33;
$posInit= strpos( $row->text, $search);
$str= $row->text;
if ( $posInit> $range)
$str= '...'.substr( $row->text, $posInit- $range);

Muitas vezes o texto procurado pode estar no começo da string, então tenho que colocar dentro do if, senão ele acaba por fazer um substr negativo ($posInit - $range). E também cortei o terceiro parametro do substr uma vez que na view eu já tenho um word_limiter.

Mesmo assim, depois envio-te um vinho do Porto.
O pastelzinho eu tenho que dar um pulo em Lisboa para comprar. Com o frio que está deve demorar um bocado.
Ponho no anexo do e-mail, pode ser?

Abraços e desculpa, quando cheguei em casa percebi que era um problema mais da peça entre o monitor e a cadeira do que qualquer outra coisa.
Preguiça de pensar, mil perdões.

Rafael.

Em 2010/11/25, às 20:51, Eric Saboia escreveu:

http://pastebin.com/zjVGuVqj

Abraços,

2010/11/25 Rafael V. de Oliveira <[email protected] <mailto:[email protected]>>

    Caros senhores, senhoras e simpatizantes.

    Gostaria de pedir uma ajuda vossa.

    Usando o seguinte exemplo:
    Na minha base de dados (MySQL 4.0) tenho a seguinte estrutura
    *id (int)**texto (text)*
    /1/"/Era uma vez, num reino muito distante, mais conhecido como
    Embu-guaçu, existia um jovem aspirante a vendedor de caquis, que
    gritava sempre: 'Cabô caqui' "/

    Muito bem, eu tenho um sistema que faz uma busca da seguinte forma:
    $this->db->select('texto');
    $this->db->like('texto', 'caquis');
    return$this->db->get('minha_tabela');

    Neste caso, eu vou achar, pois dentro do campo '/texto/' existe o
    termo '/caquis/'. E vou exibir este registro numa view, porém não
    exibo o texto completo, apenas uma parte dele, assim ó:

    echoword_limiter( highlight_phrase($texto, $procura, '<span
    class="encontrado">', '</span>'), 10);
    Esta instrução corta o texto em 10 palavras e o termo procurado
    ($procura) fica entre tags <span> com uma class encontrado.

    *O retorno é este:*
    /Era uma vez, num reino muito distante, mais conhecido como..../

    *O que eu queria era uma coisa assim:*
    /... um jovem aspirante a vendedor de <span
    class="encontrado">caquis</span>, que gritava sempre:..../

    Gostaria de uma ajuda em como retirar um extrato do texto
    encontrado, mas na posição em que o termo ('/caquis/') se encontra.


    Quem precisar de um incentivo, arranjo um vinho do Porto e um
    pastel de Belém (de Belém mesmo e não do Habibs) pra quem ajudar.
    Ou para os Calcutás da vida, eu dou meu sincero muitíssimo obrigado.

    PS: Se não fui claro, posso tentar ser mais específico ^_^

    Abraços,
    Rafael V. de Oliveira





    _______________________________________________
    [email protected] <mailto:[email protected]>
    http://www.codeigniter.com.br <http://www.codeigniter.com.br/>
    http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

    ---------------------------
    Oportunidade de negócio
    http://www.franquiasargohost.net <http://www.franquiasargohost.net/>
    ---------------------------




--
Eric Saboia - eric.saboia.org <http://eric.saboia.org/>

Beautiful is better than ugly,
Explicit is better than implicit,
Simple is better than complex,
Complex is better than complicated.

The Zen of Python, by Tim Peters

_______________________________________________
[email protected] <mailto:[email protected]>
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------


_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a