Newsgroup: it.comp.www.php
Titolo: passaggio sql tra pagine

volevo fare questo: mettere le sql delle query mysql in un file unico e
poi richiamarle dalle varie pagine, ma ho il problema delle variabili
esempio:
questo andrebbe nel file con le sql chiamato sql.php
select * from aaa where id=$id_a
poi in un secondo file metto l'include del file sql.php
il problema è che la variabile $id_a è nel secondo file e quando richiamo
la query non gli passa la variabile
come posso fare per passargliela? (magari senza usare le sessioni)
spero di essere stato chiaro
ciao a tutti e buona giornata
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Se metti require al posto di include dovrebbe andare, il codice non 
viene eseguito, ma copiato e incollato nel posto dove fai require e 
eseguito da li..
Ciao!
Sir

 ces ha scritto:


grazie per la risposta ma non funziona nemmeno così
l'unica soluzione che ho trovato è questa:
$codice_comune_selezionato=$_REQUEST['codice_comune'];
require_once 'query_sql.php';
poi richiamo la query sql che è nell'altro file
questa sottto è l'sql
$query_comuni="SELECT cod, comune
FROM generico.cod_com where cod=".@$codice_comune_selezionato.";";
l'unico sistema da me trovato è questo, ma mi sembra strano che si debba
ogni volta rifare il require_once
correggetemi se sbaglio (sicuremente sbaglio)
ciao e grazie


 eseguito da li..
Non mi sembra:
"require() and include()  are identical in every way except how they 
handle failure."

 dovrebbe 
funzionare invece:
<?php
$a = 1;
include 'b.inc';
?>
Here the $a variable will be available within the included b.inc script. 
Dipende forse da dove dichiari la variabile e inserisci l'include, prova 
a postare il codice.

 handle failure."
Hai troppo ragione.
Chiedo venia e porto le differenze:
Esempio 2. Uso del costrutto require()
// Questa istruzione include ed esegue il file global.php
require ( $DOCUMENT_ROOT."/phplib/global.php" );
A questo punto ci poniamo una domanda estremamente frequente: qual è la 
differenza tra include e require? E' molto semplice.
     *
       Il costrutto include viene valutato tutte le volte che viene 
invocato, cosa che può avvenire più di una volta se, ad esempio, esso 
compare all'interno di una iterazione. In questo esempio, tratto dal 
manuale PHP, si vede come sia possibile fare in modo che ad ogni 
esecuzione di include venga incluso un file diverso.
       $files = array ('first.inc', 'second.inc', 'third.inc');
       for ($i = 0; $i < count($files); $i++) {
         include $files[$i];
       }
     *
       Il costrutto require, invece, alla prima valutazione rimpiazza sé 
stesso con il contenuto del file incluso; di conseguenza se mettiamo una 
require all'interno di una iterazione, verrà sempre eseguito il 
contenuto del file esterno incluso la prima volta (se nell'esempio 
precedente si fosse utilizzata require in luogo di include, sarebbe 
stato incluso ed eseguito sempre il file first.inc).

 
Prima di pensare all'implementazione, hai analizzato i costi/benefici? 
Dal mio punto di vista vedo tanti costi; ti elenco i primi che mi 
vengono in mente: se utilizzi tale file per n diverse pagine avrà 
sicuramente delle query non utilizzate, quindi incappi in eventuali 
e-notice (il fatto che le nascondi con @ non risolve il problema); hai 
una pessima manutenzione del codice; devi sempre passare da un file 
all'altro per verificare nomi etc...
Benefici?
	Francesco

 first.inc).
Scusa, ma da dove l'hai prese queste informazioni? Forse non ho ben
capito cosa volevi dire, ma se:
 first.inc contiene la stringa "Sono first.inc"
 second.inc contiene la stringa "Sono second.inc"
 third.inc contiene la stringa "Sono third.inc"
Il seguente codice:
$files = array ('first.inc', 'second.inc', 'third.inc');
for ($i = 0; $i < count($files); $i++) {
	require $files[$i];
}
restituisce:
Sono first.incSono second.incSono third.inc
Esattamente come se si usasse include.
L'unica differrenza che mi risulti tra i costrutti include e require
consiste nel diverso tipo d'errore che viene sollevato qualora non
venisse trovato il file da includere: include solleva un Warning,
permettendo al PHP di continuare l'esecuzione del codice, mentre
require solleva un Fatal Error, interrompendo così l'esecuzione del
codice. Per il resto sono perfettamente identici. Vedi
www.php.net/include
.
-- 
Federico

 
www.php.net/include
.
Quoto al 100%!
O ci sbagliamo in 2, o chi ha messo in giro quell'articoletto è un serial 
killer :asd: 


E mi accorgo di non aver letto la nota, però dice "prior to PHP 4.0.2", 
quindi dipende dalla versione che si usa immagino.

 Esattamente come se si usasse include.
La differenza è questa.
  while (true) include ("loadFile.php") aprirà infinite volte lo stesso file
while (true) require ("loadFile.php") aprirà SOLO la prima volta il 
file. Le altre volte si limita a restituire eventuali output...
Sir

 file. Le altre volte si limita a restituire eventuali output...
Allora fai una prova con l'esempio che hai riportato e controlla.
Io l'ho fatta e sia require che include in un loop vengono valutati ad 
ogni ciclo. Perņ io uso PHP 4.3.11 .

 Allora fai una prova con l'esempio che hai riportato e controlla.
Fatta.
E...
Hai ragione tu, assolutamente non cambia niente, e uso PHP 5.
Non capisco... ero convinto!!!
Bah, non si smette mai di imparare, grazie!
Notte..
Sir

 Non capisco... ero convinto!!!
Forse il comportamento diverso di require era per vecchie versioni di
PHP. Sul manuale ho torvato questa nota (già evidenziata da suppaman):
Tratto da 
http://it.php.net/manual/en/function.require.php
«Note:  Prior to PHP 4.0.2, [...] Similarly, looping structures do not
affect the behaviour of require(). Although the code contained in the
target file is still subject to the loop, the require() itself
happens only once.»
-- 
Federico

 Prior to PHP 4.0.2, [...] Similarly, looping structures do not
[...]
Non mi ero accorto che avevi riportato la stessa conclusione in un
altro thread.
Ciao.
-- 
Federico

 	Francesco
anzitutto grazie per l'interessamento
in parte hai ragione, ma se la stessa sql la devo usare per più pagine
conviene a mio parere utilizare la soluzione che ho prospettato
questo è quello che ho pensato io, ma magari non è vero e ci sono
soluzioni migliori a cui io non arrivo.. niente di più facile...
ciao e per ora grazie nacora


 
Non ti conviene implementare un file di include con funzioni:
function sqlGetUserFromId($id) {
$id = mysql_real_escape($id);
return "Select * from user where id='" . $id . "';";
}
e dalla pagina principale fai un:
$res = mysql_query(sqlGetUserFromId($_POST['id'])) or die(.....);
Alla fine, visto che hai fatto 30, fai 31 e passi ad una classe per 
l'astrazione di db....
	Francesco

 file. Le altre volte si limita a restituire eventuali output...
Stai facendo confusione. Il secondo comportamento lo ottieni con
include_once()  e require_once()
Per la differenza tra include e require vedo che avete risolto da soli. :)
Bye.

 	Francesco
è un astrada che proverò ad intraperendere, anche se le sql che possono
essere utilizzate in più pagine del sito sono abbstanza numerose per
eseguire una cosa del genere
grazie comunque per l'ottima idea
ciao


 	Francesco
è una strada che proverò ad intraperendere, anche se le "sql" che possono
essere utilizzate in più pagine del sito sono abbstanza numerose per
eseguire una cosa del genere
grazie comunque per l'ottima idea
ciao
-- 


 Non capisco... ero convinto!!!
Non è che fosse questione di convinzione, nel link alla documentazione 
ufficiale di PHP c'era proprio scritto.