Newsgroup: it.comp.www.php
Titolo: Array/XML ricerca ed ordinamento [HELP!!]

vi illustro brevemente il mio problema sperando di trovare una soluzione 
con il vs. aiuto...
Ho una complessa struttura gerarchica memorizzata in un DB.
Praticamente IMPOSSIBILE da comporre con una sola SELECT e che viene 
perciò generata da una funzione ricorsiva e memorizzata in un array.
Il mio problema è che poi questo array costituisce la mia base dati in 
una griglia nella quale ho necessità di inserire vari filtri di ricerca 
e ordinamenti multipli.
Ora considerata la natura di questo array (ve ne posto un pezzettino)
Array
(
     [TIPO] => Array (*)
         (
             [ID] => Array
                 (
                     [VALORE] =>
                     [RECORD] => Array
                         (
                             [CAMPO] => ****
                             [CAMPO] => ****
                             [CAMPO] => ****
                             [..] =>
                             [CAMPO] => ****
                         )
                     [CHILD] => Array
                         (
                             [TIPO] => Array
                                 (
					..si ricomincia da (*) x n volte
				)
			    [TIPO] => Array
				(
					..si ricomincia da (*) x n volte
				)
			)
		)
	)
)
e considerato che io dovrei ordinare sia per TIPO che per ognuno dei 
CAMPI, i quali dovrebbero anche essere filtrati per una ricerca, ho 
iniziato a pensare che l'array non è molto adatto...
Perciò mi stavo buttando sull'XML per poter usare poi delle query...
Vorrei avere un parere sulle seguenti questioni:
1. è giusto pensare che con questo tipo di array, ordinamenti multipli 
sui valori CAMPO e filtri dati siano praticamente impossibili?
2. è quindi corretto ricreare il tutto in XML piuttosto che con array?
3. volendo ricreare la struttura in un oggetto XML (e non in un file) da 
poter poi interrogare con query, che supporto conviene usare? Io usavo 
PEAR XML Path, ma stavo vedendo ora il DOMdocument di PHP5 che alla fine 
per creare l'oggetto XML sembra semplice e funzionale
.....per chi ci stesse pensando, la conversione Array>XML in questo caso 
(l'ho provata) ma non funziona per svariati motivi... uno tra tutti è 
che ho come valori dell'array gli ID ed i numeri non possono essere 
elementi XML, pertanto dovrei passarli come proprietà... e dovrei 
modificare anche parecchie altre cosine che mi creerebbero altri prob 
che vorrei evitare.. perciò il mio desiderio è di generare direttamente 
l'XML corretto.]
Grazie per eventuale supporto, qualsiasi suggerimento o segnalazione mi 
sarà utile.
Saluti e chiedo scusa per la lungaggine...
simple_maL

[CUT]
Ho scritto troppo e non avete il tempo (e/o vi annoiate) di leggere 
oppure nessuno sa dirmi qualcosa? :)
simple_maL

 Ho una complessa struttura gerarchica memorizzata in un DB.
Premetto che non avevo visto il post e che comunque già arrivato a
questo punto mi hai demoralizzato. :-))
Ad ogni modo, partiamo da qui: non è che hai strutturato male il db e
semplicemente ti conviene ristrutturarlo?
Se addirittura ti serve una funzione ricorsiva per recuperare i dati dal
db, mi sa che un altro modo di progettare il tutto esista sicuramente:
quante forme normali rispetta il tuo db? :-)
Ciao.
Tristan

 semplicemente ti conviene ristrutturarlo?
Ciao e innanzitutto grazie per la risposta...
per quanto riguarda la tua domanda direi di no: non mi conviene 
ristrutturare il DB.
Lo stesso è il frutto di un'analisi abbastanza approfondita e nasce per 
fornire la possibilità di poter costruire con poche tabelle strutture 
molto complesse di dati, con molte classi e regole di appartenenza...
ora è un po' complicato da spiegare, ma ti garantisco che il prob non è 
li. Per farti un es. giusto per darti un'idea della struttura -anche se 
non si tratta del mio campo di applicazione- avrai sicuramente visto un 
albero genealogico (o pedigree), dove la *classe* anagrafica "persona", 
può rappresentare un elemento genitore, figlio, partner e tanto altro a 
seconda della sua posizione nella struttura. Ora pensa una cosa del 
genere ma con 12 *classi* anagrafiche differenti, con complesse regole 
di inclusione padre->figlio... tranquillo il DB è ok ;)
se invece mi potresti aiutare in merito il discorso creazione XML e 
QueryXML mi saresti molto d'aiuto.
Grazie ancora.
simple_maL

 QueryXML mi saresti molto d'aiuto.
Purtroppo no, mi spiace ma non me ne intendo di ciò. Se ho tempo,
comunque, nei prossimi giorni vedo di approfondire e ti dò la mia
opinione.
Intanto, prova a scrivere un nuovo post con un esempio pratico (anche
inventato: persona, genitore, ecc, è molto meglio che tipo, id, record,
ecc), e con domande dirette su ciò che vuoi ottenere. Non usare termini
come "complessa struttura gerarchica", altrimenti non proseguiranno in
molti nella lettura. :P
In bocca al lupo :)
Tristan

 Tristan
grazie...
simple_maL

 etc..etc.. se riesci a non complicarti la vita, ti assumo :)
quando si inizia? ;-)
scherzi a parte, dove credi che i db siano maggiormente utilizzati, se
non in ambito aziendale, per fare proprio ciň che chiedi? come minimo
dovresti avere una tabella per ognuna di quelle entitŕ che hai citato.
dovresti perdere giorni interi, se il progetto č davvero cosě complesso
come dici, per strutturare il db in forma normale e buttar giů le
query/stored procedure piů complesse: saranno giorni guadagnati, in
futuro.
Ciao.
Tristan

 futuro.
già fatto... :)
il risultato è una struttura molto interessante...
ovviamente ogni soggetto anagrafico ha la propria table :p
ma la cosa che crea incredibile flessibilità ed allo stesso tempo 
complessità, è che ogni soggetto è una classe e tutte le relazioni tra 
classi sono definite in una table esterna.
Questo perchè le relazioni sono moltissime e sono di tipo molti a molti. 
Credo che la mia soluzione sia la migliore, oltre che l'unica.
P.s. cmq ho risolto con la creazione dell'XML con la classe DOM php.
Ora mi tocca solo imparare ad effettuare delle query sull'XML.
Apro un post vediamo se qualcuno ne sa qualcosa...
bye
simple_maL