Newsgroup: it.comp.www.asp
Titolo: ricerca dati ciclo if... else

Salve,
ho un problema non semplice. Ho la necessita' di assegnare ad un determinato
nominativo (archivio di 16.000 iscritti) un numero di zona (le zone sono 16)
della citta' in cui abita... solo che la cosa dev'essere fatta in automatico
e basata sull'indirizzo (via e numero civico) di residenza del nominativo.
Immaginatevi una citta' come Roma o Milano che ha centinaia di Vie o Vicoli
...
Il ciclo dovrebbe essere del tipo:
se x (nominativo) risiede in via y (la via e il numero civio del nominativo)
allora assegna la zona z (scelta da un elenco di 16 zone) oppure ...
Come si puo' fare senza:
1) diventare matti ad inserire tutti i dati di tutte le vie delle citta'
2) rallentare le prestazioni del server in fase di ricerca
Avete idee o suggerimenti in merito?
Grazie infinite a tutti
Giovanni

2) rallentare le prestazioni del server in fase di ricerca
Parto dal presupposto che tu una corrispondenza ZONA-VIA ce la
devi avere da qualche parte, senno' non funziona. Quindi il tuo
punto (1) non lo capisco bene.
A questo punto, se hai una tabella del tipo
VIA/ZONA CORRISPONDENTE
non devi fare altro che fare una query del tipo:
SELECT ZONA, INDIRIZZO FROM UTENTI WHERE ZONA.VIA=INDIRIZZO.VIA
Davide
*******************************
PER IL MODERATORE
Ma questo e' IN-TOPIC? 

 punto (1) non lo capisco bene.
Certo che ci sara' ... Il problema e' che dopo che la signorina che
inserisce i dati avra' messo la via, nella pagina di inserimento dati nel
dbase devo fare un controllo del tipo:
se il nominativo x abita in via y allora assegna la zona z
risposta: no, non abita in via 1 allora prova la via 2, no neanche la 2 va
bene allora la 3 ... alla 102esima ok, abita alla 102esima via allora
assegna la zona z
quindi non so se c'e' un modo piu' veloce ... forse potrei fare cosi':
alla zona 1 ci sono le vie a, b, c, d .... alla zona 2 ci sono le vie
f,g,t...
ma comunque devo fargli fare un controllo per assegnare le zone in
automatico, non credi?
...
solo che devo fargli fare un controllo su centinaia di vie ... capisci cosa
intendo?
Ciao e grazie
Gio'

capisci cosa intendo?
A che ti serve ? Se hai una tabella di corrispondenza via/zona non
hai bisogno di "assegnare" la zona, quello che ti serve e' che
la via nella tabella "indirizzo" corrisponde ad una via nella
tabella "zone", a questo punto quando ti interessa vedere la zona
corrispondente "interroghi" la tabella zone.
Regola numero 5 per la scrittura di un buon database: mai riportare
in una tabella un'informazione che puo' essere agevolmente letta da
un'altra tabella (se non per motivi di velocita').
P.S. mi sa' che qui' stiamo andando oltremodo OT, questa non e'
piu' una questione di ASP, ma di progettazione del database...
Davide

 tabella "zone", a questo punto quando ti interessa vedere la
Il problema e' che non ho una tabella con corrispondenza via/zona ... e' qui
l'inghippo...
In effetti non mi sono affatto spiegato ...
... all'inserimento dei dati (pagina1), inserisco nome, via, ecc... (e non
la zona perche' non la conosco) alla pagina successiva (pagina2), prima di
inserire la riga nel dbase (pagina3), controllo i dati e verifico a quale
zona e' appartenente quella determinata via ... con un ciclo if ... else
o almeno io pensavo cosi' ... anche se, nella pagina di verifica (pagina2)
dovrei inserire tutte le vie da controllare per sapere a quale zona
assegnare la via che e' appena stata inserita ...
es.:
if via inserita = via a. moro, 5 then
zona = 3
elseif via inserita = via a. moro, 4 then
zona = 4
elseif
....
e cosi' via
ma avro' una cosa come centinaia di vie con i rispettivi numeri civici ...
quello che cerco e', se esiste un modo diverso e piu' rapido, oltre che meno
soffocante per le prestazioni, di verificare a quale zona appartiene la via
inserita.
Il fatto che non si inserisce la zona nella pagina 1 e' per motivi di
"segretezza", la persona che inserisce i dati NON deve sapere dell'esistenza
delle zone da assegnare alle vie, ecco perche' devo fare un controllo dopo
l'inserimento, capisci?
Spero comprenderai che sono un po' nella m... perche' capitano tutte a me
'ste soluzioni assurde?
Boh...
Ciao e grazie
Gio'

l'inghippo...
Ok, costruisci la tabella allora ed evita il problema dell'IF/ELSE.
Davide