Autocomplete com Busca Fonética (Zend FrameWork)

Bom Galera vamos pro meu Primeiro Artigo,
Vou Falar Sobre autocomplete do jQuery UI usando ZendFramework e usando
Soundex(busca Fonética),

exemplo de Soundex:
por um acaso você queira encontrar o jose mas você digitou joze o Soundex trata isso pela busca fonética
outro exemplo:

temos a palavra teste: você pode escrever tiest, text ….
isso é muito bom!

então vamos ao que interessa.

Download das Duas Ferramentas são encontradas aqui
jQuery UI – http://jqueryui.com/
Zend FrameWork – http://framework.zend.com/

Então Vamos aos Codigos:

html

    
    

       

    

Javascript

    var cache = {};
    jQuery(“#campoBusca”).autocomplete({
    /* começar o autocomplete apartir da 3 caracter */
    minLength: 3,
    source: function(request, response){
    /*request.term responsavel por pegar oque foi digitado
    esse if verifica se ele ja esta em cache, pois cada vez que é
    digitado ele faz uma requisição ajax
    */

    if ( request.term in cache ) {
    response( cache[ request.term ] );
    return;
    }

    /*Requisição Ajax*/
    jQuery.ajax({
        url: “exemplo.php”,
        type: “POST”,
        dataType: “json”,
    /*Metodo passado para o php*/
        data: “termo=” + request.term,
        success: function(data){
        cache[ request.term ] = data;
         response( data );
       }
      });
     }
    });
    },
     

Php – Zend

    $array = array();

    $exe = new Cliente();
    $select = $exe->select()
    ->from(‘cliente’, array(‘cliNome’))
    ->where(“SOUNDEX(cliNome) = SOUNDEX(‘{$_POST['termo']}’) OR cliNome LIKE ‘%{$_POST['termo']}%’”);
    $stmt = $select->query();
    $clientes = $stmt->fetchAll();

    for($i = 0; $i < count($clientes); $i++)
    {
    $array[] = $clientes[$i]['cliNome'];
    }
    /*Responsavel por Enviar o Array */
    echo json_encode($array);
    exit;
    

Mysql – Busca Fonética

    /*Sql com Busca Fonética*/
    SELECT
    cliNome
    FROM
    cliente
    WHERE SOUNDEX(cliNome) = SOUNDEX(‘tiest’)
   

Simples, não!
SOUNDEX nativo do mysql, existe tambem para o php http://php.net/manual/en/function.soundex.php
proximo passo implementar levenshtein, Obrigado God Bless !