Ciao,
ho fatto delle prove e ti mando anche il mio codice:
home.php:
PHP:
<?php
//---------------------LEGGO IL DB------------------
include('conn.php');
$connessione = new mysqli($host, $user, $password, $db);
// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
echo "Connessione fallita: ". $connessione->connect_error . ".";
exit();
}
if (!$result = $connessione->query("SELECT * FROM CORSI")) {
echo "Errore della query: " . $connessione->error . ".";
} else {
// conteggio dei record
if ($result->num_rows > 0) {
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$citta = $row['CITTA'];
$lingua = $row['LINGUA'];
$tipologia = $row['TIPOLOGIA'];
$arcitta[] = $citta;
$arlingua[] = $lingua;
$artipologia[] = $tipologia;
}
}
}
// chiusura della connessione
$connessione->close();
echo '<form method="get" action="esegui.php">';
$arcittaok=array_unique($arcitta);
echo 'scegli la citta\': ';
echo '<select name="citta">';
echo '<option value=" " selected>Effettua una scelta</option>';
foreach ($arcittaok as $citta) {
echo '<option value="'.$citta.'">'.$citta.'</option>';
}
echo '</select>';
$arlinguaok=array_unique($arlingua);
echo '<br><br>scegli la lingua: ';
echo '<select name="lingua">';
echo '<option value=" " selected>Effettua una scelta</option>';
foreach ($arlinguaok as $lingua) {
echo '<option value="'.$lingua.'">'.$lingua.'</option>';
}
echo '</select>';
$artipologiaok=array_unique($artipologia);
echo '<br><br>scegli la tipologia: ';
echo '<select name="tipologia">';
echo '<option value=" " selected>Effettua una scelta</option>';
foreach ($artipologiaok as $tipologia) {
echo '<option value="'.$tipologia.'">'.$tipologia.'</option>';
}
echo '</select>';
echo '<br><br><br><br><input type="submit" name="invia" value="Invia i dati">';
echo '</form>';
?>
ed esegui.php
PHP:
<?php
$citta = $_GET['citta'];
$lingua = $_GET['lingua'];
$tipologia = $_GET['tipologia'];
$condizione = 'CITTA = \''.$citta.'\' AND LINGUA = \''.$lingua.'\' AND TIPOLOGIA = \''.$tipologia.'\'';
//echo $condizione;
//---------------------LEGGO IL DB------------------
include('conn.php');
$connessione = new mysqli($host, $user, $password, $db);
// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
echo "Connessione fallita: ". $connessione->connect_error . ".";
exit();
}
// (!$result = $connessione->query("SELECT * FROM CORSI where $condizione")) {
if (!$result = $connessione->query("SELECT * FROM CORSI where $condizione")) {
echo "Errore della query: " . $connessione->error . ".";
} else {
// conteggio dei record
if ($result->num_rows > 0) {
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$id = $row['ID_CORSO'];
$citta = $row['CITTA'];
$corso = $row['CORSO'];
$lingua = $row['LINGUA'];
$tipologia = $row['TIPOLOGIA'];
$costo = $row['COSTO'];
echo "$id $citta $corso $lingua $tipologia $costo<br>";
}
}
}
// chiusura della connessione
$connessione->close();
?>
In conn.php sono contenute le variabili per la connessione (hostname, password, DB ecc.). Per le prove ho creato una tabella (CORSI). Non è necessario un array per il passaggio delle variabili: bastano 3 norrmali variabili che io ho chiamato citta (sede del corso), lingua e tipologia.
Il programma comincia con la lettura dell'intera tabella e, da ogni record, preleva i campi citta, lingua e tipologia, che poi inserisce in altrettanti array dopodiché, con la funzione array_unique() elimino i doppioni, quindi inserisco gli elementi dei nuovi array in altrettante select-box quindi, una volta scelta la sede del corso, la lingua e la tipologia di corso, il programma rilegge l'intera tabella estraendone solo i recordsd che rispondono a quella particolare condizione (citta, lingua e tipologia)
Ovviamente io ho usato dei dati di prova: tu poi dovrai adattarlo alle tue esigenze (ricordati di sostituire il metodo GET col metodo POST)
Zorro