Query dinamica

tyde

Nuovo Utente
4 Apr 2007
5
0
0
PHP/MySql

Ciao, volevo sapere se è possibile (e se si come) creare una query SQL dall'utente.

Mi spiego meglio. Vorrei che un utente possa scegliere di
visualizzare solo alcuni campi di una tabella, quindi decida quali campi
la query (SELECT) debba andare a pescare.

E' possibile?
Grazie in anticipo per l'aiuto.
 

mariolone

Nuovo Utente
4 Apr 2007
9
0
0
puoi utilizzare un menu a tendina con le rispettive tabelle, una volta cliccata la tabella fai partire la query
 

tyde

Nuovo Utente
4 Apr 2007
5
0
0
grazie a tutti...

...diciamo che in un certo modo ho risolto.
in pratica, ho fatto in modo da creare dinamicamente la query attraverso un form. sintetizzando arrivo ad avere la seguente situazione:

"$query" è una strionga in cui vengono memorizzate le colonne scelte dall'utente (nel formato campo 1, campo2 etc...)

"$tab" ovviamente e la tabella scelta sempre dall'utente

"$id" è un indice...

quindi ottengo una cosa del genere:

$q = "SELECT $query FROM $tab WHERE id = '$id'";
$check = mysql_query($q) or die("Query fallita");
while ($row = mysql_fetch_array($check)) {
?>

e costruisco la tabella con i risultati
<table>
<td></td>.....
....</table>
<?
}
?>

Ora, il problema è che la query non funziona.
Se la scrivo io a mano, sostituendo i valori delle variabili con i nomi delle colonne, tutto ok ma se scrivo al loro posto la variabile $query...non ne vuole sapere.

Ho fatto diversi tentativi e l'unico problema lo da solo $query, $tab e $id sono Ok.

Qualcuno ci ha capito qualosa?:dipser: :crying:
 

tyde

Nuovo Utente
4 Apr 2007
5
0
0
dunque...

...ci avevo già provato. alcuni problemi sono stati risolti e un'altro si presenta a dir poco fastidioso.
La situazione adesso è che la query funziona benissimo. La cosa strana però è che quando imposto la condizione (WHERE $id LIKE $mioID) se $mioID è un numero funziona se invece si tratta di una caratteri no. Ho anche provato a usare "=" anziché "LIKE" ma non ne vuol sapere.
Devo venirne assolutamente a capo, visto che si tratta dell'ultimo scoglio!
 

tyde

Nuovo Utente
4 Apr 2007
5
0
0
provato...

...ma niente. Però ho capito che il problema non sta nella stringa in se ma nel modo di passarla. Cioè, se invio la query come ho fatto finora lo script mi restituisce query fallita ma se scrivo io stesso la query all'interno dello script funzionna.
Cerco di spiegarmi meglio:

In pratica se io invio:
$querystring="SELECT $query FROM $tab WHERE id LIKE $myid";

alla pagina che lo processa attraverso:

$q = $HTTP_POST_VARS[querystring];

$check = mysql_query($q) or die("Query fallita");
while ($row = mysql_fetch_array($check)) {
?>
<table> ect...

Non ne vuole sapere ma se scivo io stesso come segue nello script:

$q = SELECT $query FROM $tab WHERE id LIKE 'mio_id";

$check = mysql_query($q) or die("Query fallita");
while ($row = mysql_fetch_array($check)) {
?>
<table> ect...

Allora tutto OK. Quindi credo che mi sfugga qualcosa sul modo di passargli la variabile $myid...


:confused: :eek:
 

tyde

Nuovo Utente
4 Apr 2007
5
0
0
ci avevo provato però...

...adesso mi sono accorto che l'errore è causato dal fatto che se metto gli apici la stringa che viene passata si trasforma da:
$q = "SELECT id, g1, g2 FROM GEN WHERE id LIKE 'sc01'";
a questa:
$q = "SELECTid, g1, g2 FROM GEN WHERE id LIKE \'sc01\' ";
 
Discussioni simili
Autore Titolo Forum Risposte Data
M query con php "dinamica" PHP 2
A [RISOLTO]Come generare query dinamica PHP-MYSQL PHP 2
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 27
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1

Discussioni simili