lucaswxp 22 Denunciar post Postado Março 22, 2010 Olá galera. Esta função divide um string - em base dos espaços contidos nela - e retorna várias, ou uma, cláusula "LIKE" para o uso numa consulta. Funciona como os search engines modernos. (Google, Yahoo, etc). Utilização: echo smart_search('nome_coluna', 'tutoriais cakephp para iniciantes'); Retorno: nome_coluna LIKE '%tutoriais%' OR nome_coluna LIKE '%cakephp%' OR nome_coluna LIKE '%para%' OR nome_coluna LIKE '%iniciantes%' Exemplo de situção real: mysql_query('SELECT * FROM registros WHERE ' . smart_search('titulo', $palavras_chaves));A função já adionará slashes automaticamente nas strings, mas você pode passar "false" para o terceiro parâmetro caso não queira. Função: function smart_search($column, $text, $addslashes = true){ $arr_text = array_filter(explode(' ', $text)); $last = end(array_keys($arr_text)); $return = ''; foreach($arr_text as $key => &$item){ $return .= $column; $return .= " LIKE '%"; $return .= $addslashes ? addslashes($item) : $item; $return .= "%'"; if($key != $last) $return .= ' OR '; } return $return; } Simples, mas útil. Aproveitem. [EDIT] 22/02/2010 - Bug fixed Compartilhar este post Link para o post Compartilhar em outros sites
gmps 0 Denunciar post Postado Maio 11, 2010 boa função...só tira um "}" que está a mais no final []´z Compartilhar este post Link para o post Compartilhar em outros sites