Newsgroup: it.comp.www.php
Titolo: codice query esterne al codice php

Salve a tutti, scrivo per la prima volta e colgo l'occasione per
salutare tutti.
Mi chiamo Alberto e ho inizato a muovere i primi passi installando
"AppServ" e scrivendo la prima paginetta php che interroga il db
oracle (per ora uso OCI8).
Tenete presente che lavoro in una situazione in cui tutta l'attivita'
di reportistica gira su Access, con tabelle e viste "Oracle" collegate
tramite odbc.
L'idea, difficile ma forse non impossibile, e' quella di spostare
molta reportistica su web.
Inizio con una domanda, voglio sapere se quello che penso e' una cosa
possibile da fare.
Supponiamo di avere il codice SQL di tre query: query1, query2, query3
Supponiamo di avere due pagine php in cui nella prima uso la query1 e
la query2 insieme, nella seconda uso la query2 e la query3 insieme.
Supponiamo che nella query2 voglio aggiugere, temporaneamente, una
condizione sul where.
Normalmente dovrei modificare il codice di tutte e due le pagine che
usano la query2.
Esiste una tecnica/modo/soluzione che mi evita la riscrittura ? Mi
azzardo a dire, sbaglio sicuramente, che nelle pagine php dovrei in un
certo senso mettere solo un riferimento alle query.
Mi chiarite le idee ?
Ciao a tutti e scusate la confusione....
Alberto

 Esiste una tecnica/modo/soluzione che mi evita la riscrittura ? 
E' necessario creare una architettura software basata su classi (o
funzioni) che centralizzi il codice SQL e fornisca le funzionalita' di
accesso dati alla parte di presentazione.
es.
Crei una serie di funzioni che restituiscono le resource resituite
dall'esecuzione delle query oppure definisci delle classi che fanno la
stessa cosa.
Per quello che rguarda il where le soluzioni sono molteplici.
Strutturare le quesry in modo che siano componibili (es aggiungi campi,
join, where, order etc.) runtime. Una struttura del genere l'ho
realizzata basando la definizione di un db in XML e utilizzando delle
classi C# richiedevo la costruzione delle query runtime.
In alternativa, nel tuo caso (piu' semplice) puoi creare una classe
chiamata SQLQuery dove definisci in fase di inizializzazione dei membri
"standard" (SELECT, FROM, WHERE, ORDER, etc) e poi a runtime puoi
chiedere  che ne vengano aggiunti degli altri (es chiami
$SQLQuery->AddWhere('Sum = 5');).
-- 
I'am what I'am, I do what I can

Ammetto che ho capito ben poco ma la prima sembre la soluzione da
percorrere, mi puoi indirizzare su qualche sito/libro che spiega
bene(con esempi) quello che mi dici di fare ?
Grazie


 molta reportistica su web.
ciao,
ti dico come ho risolto io un problema, poi vedi tu se ti puň essere 
utile. praticamente gli utenti hanno una pagina dove vengono presentati 
i dati presi dal database sql. a livello di programma io definisco ogni 
colonna della query SQL, poi il programma in automatico costruisce una 
interfaccia che permette di escludere le colonne di dati a cui l'utente 
non č interessato, e anche applicare dei filtri: su ogni colonna ho 
messo un campo di input dove l'utente inserisce il criterio di ricerca, 
es: "> 10" oppure "mario*".  e di conseguenza crei dinamicamente la 
query. poi quando l'utente č contento dei dati visualizzati puoi mettere 
un pulsante "genera report" che crea il pdf.
io ho fatto cosě, ma bisogna vedere quali sono le tue esigenze..
ciao
-- 
Ranger! aggiungi .it all'indirizzo per rispondermi via mail
www.rossi.eu.com

 bene(con esempi) quello che mi dici di fare ?
E' una questione di design applicativo, non conosco libri/siti che
spieghino questa cosa. Prima dovresti imparare a programmare in PHP
partendo da cose semplici.
