Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    150

    Estrarre prefisso da numero di telefono

    Salve a tutti, prima di partire con la domanda devo spiegare un attimo la situazione.

    Nel mio database ho il numero di telefono dei vari clienti.
    Il numero di telefono viene salvato come testo semplice, rimuovendo tutti i caratteri che non siano numeri.
    Questo perchè dopo gli utenti possono ricercare direttamente per numero di telefono.

    Ora arriviamo alla domanda vera e propria.
    In fase di visualizzazione è un po' scomodo vedere un numero senza un minimo di separatori, per cui volevo fare un cosa "estetica" e separare il prefisso dal numero vero e proprio.

    Solo che qui non so come fare: io ho l'elenco con tutti i prefissi d'italia, ma come posso fare?

    Avete qualche consiglio?
    E' un'impresa disperata?
    Voi vi siete mai trovati in questa situazione?

    Grazie a tutti in anticipo

  2. #2
    Ciao,
    io utilizzerei questa logica:

    codice:
    Se il numero di telefono comincia con 3
       il prefisso è formato dalle prime tre cifre
    Altrimenti
       Estrai le prime due cifre del numero e le cerchi nel tuo elenco
       Se trovate
          il prefisso è formato dalle prime due cifre
       Altrimenti 
          Estrai le prime tre cifre del numero e le cerchi nel tuo elenco
          Se trovate
             il prefisso è formato dalle prime tre cifre
          Altrimenti
             Il prefisso è formato dalle prime quattro cifre
          Fine se
       Fine se
    Fine se
    Chiaramente questo prescinde da eventuali prefissi internazionali, tipo 0039 o +39 che però sono facilmente riconoscibili.

    La logica di quello che ti ho scritto si basa sul fatto che, premesso che i prefissi possono essere solo di due, tre o quattro cifre, dovrebbe valere una semplice regola che impedisce alle prime cifre di un prefisso di essere uguali ad un prefisso più corto di sè.
    In altre parole nessun prefisso di tre o quattro cifre può cominciare con 02 perché l'esistenza del prefisso di Milano lo impedisce, allo stesso modo nessun prefisso di quattro cifre può iniziare con 081 perché l'esistenza del prefisso di Napoli lo impedisce ecc... e, in senso opposto, se sai che, per esempio, il prefisso di Biandrate è 0321 sei sicuro che non esistono i prefissi 03 e 032, così come sapendo che il prefisso di Torino è 011 si può esser certi che il prefisso 01 non esiste.

    Bada che questa regola non l'ho studiata o letta da qualche parte ma è solo frutto di osservazione e buon senso quindi potrebbe essere sbagliata (e in quel caso la logica che ti ho detto viene meno).

    E' un problema carino, facci sapere se ne vieni fuori.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    150
    mhm... vedrò di applicare la tua logica, mi sa che è quella giusta.

    io avevo pensato la solita cosa, però al contrario, ovvero partire da 4 e poi tornare indietro, però non è sicura come cosa.

    ora la provo, ti farò sapere a breve.

    intanto grazie

    EDIT: siccome questa operazione mi sembra un po' onerosa (nel peggiore dei casi dovrò fare 3 select, nelle liste con una 50ina di elementi si arriverebbe a 150 ...), vedrò di calcolarmi il prefisso e metterlo in un campo apposito ogni volta che la riga viene salvata. quando carico i dati è solo una questione di visualizzazione, senza operazioni su db. vi farò sapere anche in questo caso

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    150
    provato ora e la logica funziona.

    grazie per il consiglio!

  5. #5
    Di niente, figurati,

    Originariamente inviato da tampe125
    EDIT: siccome questa operazione mi sembra un po' onerosa (nel peggiore dei casi dovrò fare 3 select, nelle liste con una 50ina di elementi si arriverebbe a 150 ...), vedrò di calcolarmi il prefisso e metterlo in un campo apposito ogni volta che la riga viene salvata. quando carico i dati è solo una questione di visualizzazione, senza operazioni su db. vi farò sapere anche in questo caso
    Questa mi sembra un'ottima idea in modo che l'operazione la fai una sola volta in fase di caricamento del dato e non tutte le volte che lo visualizzi.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.