Query ricerca tramite campi select
Salve, sono nuovo di php MySql, (ho fatto qualcosa con asp Access) e devo fare ora delle ricerche su un database MySql tramite dei campi select su pagine php.
Il database è composto da varie tabelle; quella principale contiene l'anagrafica di un certo numero di cooperative del territorio e un'altra contiene un elenco di tutti i servizi che queste possono svolgere. In quest'ultima denominata "settori" Ogni campo ha il nome di un servizio (pulizie, manutenzione, eccetera) ed i record hanno valore 1 o zero (inseriti da checkbox) a seconda del fatto che una cooperativa svolga o meno quel servizio. Le tabelle sono in relazione tramite un campo comune ID_coop.
Sulla pagina di ricerca http://coges.altervista.org/select_settori.php ho due select collegate: nella prima seleziono un macrosettore e nella seconda il settore specifico; questo secondo valore viene passato tramite variabile e deve darmi il nome del campo su quale cercare se ci sono valori 1.
In pratica dovrebbe essere:
Codice PHP:
$serv_Rs_ricerca = "-1";
if (isset($_GET['servizio'])) {
$serv_Rs_ricerca = $_GET['servizio'];
}
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = sprintf("SELECT '$%s' FROM settori WHERE '$%s=1", GetSQLValueString($serv_Rs_ricerca, "int"),GetSQLValueString($serv_Rs_ricerca, "int"));
scritta con l'aiuto di Dreamweaver, mi da errore di sintassi.
Ringrazio anticipatamente per qualsiasi suggerimento.
Buon lavoro a tutti
Variabile con il nome del campo su cui cercare
Salve, grazie per le indicazioni.
Devo provare a mettere in pratica per il mio caso l'esempio con gli accorgimenti per la sicurezza.
:???:
Variabile con il nome del campo su cui cercare
Riprendo l'argomento. Scusate l'ignoranza in materia.
Ho usato l'ultimo esempio di "miniscript" per una prova in merito al mio problema iniziale e quindi ho creato una select con 4 voci di di servizi sulla pagina con il form che punta all'altra pagina php che dovrebbe ricevere il dato selezionato e verificare il campo omonimo alla ricerca di valori 1 (i valori registrati sono 1 o zero da checkbox). http://coges.altervista.org/select_settori.php
Codice PHP:
<?php require_once('Connections/ConnCoop.php'); ?>
<?php
$select_utente = (isset($_GET['servizi'])) ? $_GET['servizi'] : NULL;
// verifichiamo cosa ha selezionato
switch($select_utente)
{
case 'TRASCRIZIONE': $campo_nella_query = 'TRASCRIZIONE'; break;
case 'SEGRETERIA': $campo_nella_query = 'SEGRETERIA'; break;
case 'VERDE_MANUTENZIONE': $campo_nella_query = 'VERDE_MANUTENZIONE'; break;
case NULL:
default: $campo_nella_query = ''; break;
}
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$campo_nella_query." IDcoop FROM settori WHERE ".$campo_nella_query." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);
?>
Ma c'è qualcosa di sbagliato:
Codice:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM settori WHERE = '1'' at line 1