[Tech] Emulazione campi tipo array.

Claudio Mannucci claman64@tin.it
Ven 22 Feb 2002 09:15:49 CET


Buongiorno a tutti.
Sto sviluppando (PHP) un applicazione web che, per la sua costituzione,
usa uno (o piu') campi di tipo vettoriale nel database.
Spulciando la (ottima) documentazione del Postgres ho trovato che i campi
di tipo vettoriale hanno questa limitazione:
se accedo ad un elemento che eccede il limite attuale ottengo il
messaggio " array bound excedeed".
L'unico modo per fare un "append" e' assegnare di nuovo all'array tutti i
valori.
es.
pippo = {1,2,3,}
select pippo[1] from tabella mi da' 3 (ok, il vettore e' in base 1).
update tabella set pippo[4]='4' mi da' " array bound excedeed"..
corretto:
update tabella set pippo = '{1,2,3,4}'...


Di per se' il problema potrebbe essere aggirato (come consiglia il
manuale) usando un' altra tabella al posto del campo vettoriale, ma il mio
problema e' che per accedere ai dati uso un form (PHP) i cui campi di tipo
input sono generati usando una routine for e i nomi, di conseguenza, sono
del tipo name="campo1[x]" che accedera' al valore pippo[x] (per essere
precisi sarebbe campo1[x-1] <-> pippo[x].

Se incremento il valore di x non posso accedere al valore corrispondente
del campo

Qualcuno ha un' idea per poter gestire la cosa in maniera appropriata?
Per ora le soluzioni che mi sono venute in mente sono piuttosto
farraginose...

Grazie per l'aiuto..!

Ciao
Claudio






Maggiori informazioni sulla lista flug-tech