+ Responder ao Tópico



  1. #1
    whinston
    Visitante

    Padrão PHP: função para pesquisa

    Ae galerinha, to fazendo um sistema tipo tarifador de telefonia e to com o seguinte problema.
    Tenho uma tabelinha com todos os prefixos de telefones no brasil (milhares), mas tem um porém (vide abaixo):

    MATAO 1628 fixed
    MATAO 163382 fixed
    MATAO 163383 fixed
    MATAO 163384 fixed
    MATAO 163394 fixed

    A cidade de Matão por exemplo pode ter os prefixos acima. Supondo que eu tenho o número 1633842489 e preciso identificá-lo como sendo de Matão. Qual a melhor forma de fazer essa comparação, uma vez que a quantidade de casas a comparar não é fixa ?

  2. #2

    Padrão Re: PHP: função para pesquisa

    perae, quer dizer que já tem lugar com telefone de DEZ digitos??? aqui em Brasília colocaram oito agora!!!. Olha, se é um lugar com um telefone de dez dígitos, checa pelo prefixo das cidades que tem mais digitos, caso tenha oito (como quase too o resto do mundo) checa com os números de prefixo com 4 digitos.

  3. #3
    whinston
    Visitante

    Padrão Re: PHP: função para pesquisa

    Na verdade 10 dígitos com o DDD caro Evandro, por exemplo 11 4063 9656.
    Eu fiz da seguinte forma, vim da direita para esquerda, comparando 1 a 1.

    Peguei a variável nrtelefone = 1140639656, usei um substr e ela ficou em 114063.
    Ae eu comparei essa variável com todo banco de dados e não encontrou nada.

    Ae foi caindo em case (ou if) e cada vez fui subtraindo mais nrs.
    Na segunda oportunidade ela ficou como 11406 e comparei novamente.
    Se retornasse a cidade, tava resolvido. Caso contrário, retira mais um nr. e compara novamente.

    Dessa forma eu resolvi o problema.
    Se mais alguém tiver o problema pela frente, essa é uma das alternativas, se bem que não gostei da forma que eu mesmo fiz, ficou "feia".

  4. #4

    Padrão Re: PHP: função para pesquisa

    Pera ai!

    Qual é o prefixo de matão?

    16 28 (??? Existe isto? Pode haver situação de vc receber isto?)
    16 3382
    16 3383
    16 3384
    16 3394

    e quais os outros?

    Como é que vc recebe esta informação? Antes de utlizar o substr como é que vc a recebe?