Newsgroup: it.comp.www.php
Titolo: usare variabili nella SELECT di MySQL?

ciao a tutti,
sto cercando un modo di usare una variabile in una SELECT di una query
MySQL usando PHP.
Ho una variabile il cui contenuto puo' variare. 
Esempio:
$var=field_1 field_2 field5
oppure
$var=field3 field4 field8
Vorrei filtrare la mia tabella slezionando solo le colonne specificate
nella variabile $var.
Qualcosa tipo:
$var=field1 field5 field10
SELECT string_to_array($var)
FROM mytable
ORDER BY mysortfield ASC
E' possibile?
Oppure, in che modo posso ottenere qualcosa di silime?
Vi ringrazio in anticipo per qualsiasi suggerimento
tony

 E' possibile?
Se la variabile  e di tipo testuale ed i nomi dei campi non contengono
spazi, allora ti basta:
$var = preg_replace('#\s+#si', ', ', trim($var));
Se la variabile e' un array (consigliabile), puoi utilizzare
http://www.php.net/implode
 per unire i vari elementi (es. con ,) ed
utilizzare il risultato nella SELECT.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 ha scritto nel messaggio 
news:1nw5gz4wr95gb$.1ua8xe3xs15qe$.dlg@40tude.net...

$REG="Silvio"
$query ="SELECT nome FROM dipendenti WHERE nome='$REG'";
$result = mysql_query($query, $db);

 $result = mysql_query($query, $db);
Scusate.
Mi sono spiegato male.
Per variabile nella SELECT intendo 'nella SELECT', non nella WHERE.
Cioe',
mi piacerebbe decidere quali campi visualizzare, del mio db, specificandoli
grazie ad una variabile (oppure grazie al campo in un altra tabella che
contiene i nomi dei campi da visualizzare) da usare nella SELECT.
esempio:
SELECT $miecampi FROM miatabella WHERE miocampowhere='1' ORDER BY
miocamposort ASC
Se eseguo una query cosi' come l'ho scritta sopra, brutalmente, mi viene
visualizzata una tabella contenente una colonna la cui intestazione si
chiama '$mieicampi' (!).
Sembra una cosa facile da fare (a parole), ma le sto provando tutte senza
il minimo successo.
Ciao e grazie comunque. ;).
tony

 tony
$REG="colonna1 colonna2 colonna3"
$query ="SELECT  $REG  FROM dipendenti";
$result = mysql_query($query, $db);
piů semplice di cosě...
se non funziona prova a cambiare le virgolette " in apici '
prova anche a fare un echo sulla query:
echo $query
cosi vedi come tratta la tua variabile il php

 se non funziona prova a cambiare le virgolette " in apici '
Facendo in questo modo $REG non verrebbe "tradotta" ed anche in questo
caso non funziona.


> piů semplice di cosě...
non spariamo cazzate, questa stringa funziona
andavano solo messe le virgole ma penso che chiunque se ne sarebbe accorto.
 $REG="colonna1, colonna2, colonna3"


 accorto.
Ovviamente, ma visto che il messaggio originale chiedeva un metodo per
convertire una stringa contenente i nomi dei campi in un una stringa da
poter utilizzare in una query SQL, affermare che basta mettere
manualmente le virgole non mi sembra molto utile.
Resta valido quanto affermato sull'utilizzo dei singoli apici al posto
di quelli doppi.


In effetti, ci sarei arrivato dopo un tentativo o due.
E funziona, confermo.
Il mio  problema si intriga un po' perche' ora devo visualizzare i
risultati sotto forma di tabella, con solo le colonne selezionate ... in
dreamweaver. Ma non mi sembra che dreamweaver mi permetta di farlo senza
metter mano al codice.
Quindi mi sa che l'unica strada da percorrere sia quella del codice a
manina.
Ciao e grazie a entrambi per i suggerimenti.
tony

a Filippo...
lassamo perde che è meglio...
come diceva un puffo.