Ciao a tutti! ho cominciato da poco a dilettarmi con il PHP. Sto cercando di sviluppare un programma che mi permetta di copiare i campi di un file excel esteno all'interno di un database di prova(nel mio caso xlogic) creando una tabella, dopodichè esso deve essere in grado, tramite "filtri" WHERE SQL di interrogare il database e mostrarmi i dati in un form menu a tendina <select> man mano che li seleziono, fino ad arrivare ad aprirmi il link della scheda del corso che soddisfa le voci che ho selezionato in alcuni campi(area, categoria, titolo_corso). Il problema si pone quando seleziono un valore dal primo select(quello relativo all'area) perchè quando mi lancia la pagina successiva nel nuovo select non mi visualizza i dati filtrati! Ipotizzo che il problema riguardi quindi le variabili $POST_[''] perchè il valore del dato selezionato nel menu select non mi arriva nel menu successivo! Inoltre non riesco a visualizzare una sola volta nel menu a tendina un valore del campo area(si ripetono visto che per alcuni corsi le aree sono ovviamente le stesse) ma quello è il problema minore.
Ho provato un pò di tutto ma non riesco a trovare una soluzione valida! Qualcuno può aiutarmi??
Grazie mille!
Posto qui sotto il codice completo, commentato il più possibile per farlo comprendere al meglio:
Ho provato un pò di tutto ma non riesco a trovare una soluzione valida! Qualcuno può aiutarmi??
Grazie mille!
Posto qui sotto il codice completo, commentato il più possibile per farlo comprendere al meglio:
PHP:
<html>
<head>
<title>Scegli il corso che fa per te</title>
</head>
<body>
<?php
/*CONTROLLO CAMPI*/
if ($_POST['passaggio']=="")
{
inserimento_dati();
}
if ($_POST['passaggio']=="filtro1")
{
form2();
}
if ($_POST['passaggio']=="filtro2")
{
form3();
}
if ($_POST['passaggio']=="filtro3")
{
lancia_scheda_corso();
}
/*LEGGE UN FILE CSV E LO TRASCRIVE TUTTO IN UN DATABASE*/
function inserimento_dati()
{
include "connessione_database_fabiogia.php"; //mi collego al database
//creo una tabella nel database con colonne definite
$sql = "CREATE TABLE catalogo_corsi
(Id int,
Area varchar(15),
Categoria varchar(30),
Sottocategoria varchar(15),
Codice int,
Titolo varchar(30),
Ultima_modifica int,
Crediti_ECM varchar(15),
Crediti_UNI varchar(15),
Crediti_PROF int,
Ore int,
Tipologia varchar(15),
Lingua varchar(15),
Scheda_corso varchar(100),
Ultima_modifica_scheda int,
Moduli varchar(15),
Lezioni varchar(15),
Shop_online_scontato int,
Shop_online int
)";
//esegue la query
mysql_query($sql);
mysql_query($modifica); */
echo "<p> Scegli l'area del corso che ti interessa: <br><br></p>";
lettura_scrittura(); //lancia la funzione lettura_scrittura
echo "Dati copiati da file excel a database";
form1(); //lancia la funzione FORMULARIO1
}
function lettura_scrittura() //Leggi il file excel e scrivi su database
{
$anag=fopen("catalogo_corsi_modificato.csv", "r") or die("Impossibile aprire il file!");
//con "r" che sta per sola lettura
/*non mettiamo alcun secondo parametro cosi andrà fino in fondo a leggere*/
while ($rigafile=fgets($anag))
{
$array_campi=explode(";",$rigafile);
$area=$array_campi[0];
$categoria=$array_campi[1];
$sottocategoria=$array_campi[2];
$codice=$array_campi[3];
$titolo=$array_campi[4];
$ultima_modifica=$array_campi[5];
$crediti_ecm=$array_campi[6];
$crediti_uni=$array_campi[7];
$crediti_prof=$array_campi[8];
$ore=$array_campi[9];
$tipologia=$array_campi[10];
$lingua=$array_campi[11];
$scheda_corso=$array_campi[12];
$ultima_modifica_scheda=$array_campi[13];
$moduli=$array_campi[14];
$lezioni=$array_campi[15];
$shop_online_scontato=$array_campi[16];
$shop_online=$array_campi[17];
$insert = "INSERT INTO catalogo_corsi (Area, Categoria, Sottocategoria,
Codice, Titolo, Ultima_modifica, Crediti_ECM,
Crediti_UNI, Crediti_PROF, Ore, Tipologia, Lingua, Scheda_corso,
Ultima_modifica_scheda, Moduli, Lezioni, Shop_online_scontato,
Shop_online)
VALUES (' ".$area." ',
' ".$categoria." ',
' ".$sottocategoria." ',
' ".$codice." ',
' ".$titolo." ',
' ".$ultima_modifica." ',
' ".$crediti_ecm." ',
' ".$crediti_uni." ',
' ".$crediti_prof." ',
' ".$ore." ',
' ".$tipologia." ',
' ".$lingua." ',
' ".$scheda_corso." ',
' ".$ultima_modifica_scheda." ',
' ".$moduli." ',
' ".$lezioni." ',
' ".$shop_online_scontato." ',
' ".$shop_online." '
)";
mysql_query($insert) or die(mysql_error());
/*qui ci andrebbe un'altra query che elimina la prima riga
di intestazione ma dopo le prove che ho fatto il risultato è
peggiore*/
} //fine while
mysql_close($link); //chiudo la connessione
}
/*FORMULARIO 1 - CREO UN MENU' A TENDINA IN CUI VISUALIZZO LE VOCI DELLA COLONNA AREA*/
function form1()
{
include "connessione_database_fabiogia.php";
echo "<form action=\"$PHP_SELF\" method=\"post\">";
/*mettiamo qui l'hidden cosi da non ripassarci più, potevamo metterlo anche
all'inizio della funzione inserimento_dati()*/
echo "<input type=\"hidden\" name=\"passaggio\" value=\"filtro1\">" ;
echo "<p>";
$seleziona = "SELECT * FROM catalogo_corsi";
$tipo_menu="area_corso";
echo "<select name=' ".$tipo_menu." '>";
/*mettiamo i dati trovati su un menù a tendina*/
//eseguo la query della ricerca
mysql_query($seleziona) or die(mysql_error());
//e la salvo in una variabile
$result1 = mysql_query($seleziona);
while ($row = mysql_fetch_assoc($result1)) //Visualizza area
{
echo "<option value=' ".$row['Area']." '>".$row['Area']."</option>";
}
echo "</select>";
echo "</p>";
//inserisco un tasto
echo "<p>
<input type=\"submit\" value=\"Avanti\"
title=\"Fate click su questo pulsante avanzare nella scelta del corso\">
</p>";
echo "</form>";
mysql_close($link);
}
/*FORMULARIO 2 - CREO UN MENU' A TENDINA IN CUI VISUALIZZO LE VOCI CHE SODDISFANO I PARAMETRI RICERCATI(CATEGORIA)*/
function form2()
{
include "connessione_database_fabiogia.php";
echo "<form action=\"$PHP_SELF\" method=\"post\">";
echo "<input type=\"hidden\" name=\"passaggio\" value=\"filtro2\">" ;
echo "<p> Scegli l'argomento: <br><br></p>";
echo "<p>";
$seleziona_categoria = "SELECT * FROM catalogo_corsi
WHERE Area = '$_POST[area_corso]'";
$tipo_menu2="categoria_corso";
echo "<select name=' ".$tipo_menu2." '>";
/*mettiamo i dati trovati su un menù a tendina*/
mysql_query($seleziona_categoria) or die(mysql_error());
$result2 = mysql_query($seleziona_categoria);
if (!$result2) //controllo esecuzione corretta query
{
die('Invalid query: ' . mysql_error());
}
while ($row = mysql_fetch_assoc($result2)) //Scorporazione dati
{
echo "<option value=' ".$row['Categoria']." '>".$row['Categoria']."</option>";
}
echo "</select>";
echo "</p>";
//inserisco un tasto
echo "<p>
<input type=\"submit\" value=\"Avanti\"
title=\"Fate click su questo pulsante avanzare nella scelta del corso\">
</p>";
echo "</form>";
mysql_close($link);
}
/*FORMULARIO 3 - CREO UN MENU' A TENDINA IN CUI VISUALIZZO LE VOCI CHE SODDISFANO I PARAMETRI RICERCATI(TITOLO)*/
function form3()
{
include "connessione_database_fabiogia.php";
echo "<form action=\"$PHP_SELF\" method=\"post\">";
echo "<input type=\"hidden\" name=\"passaggio\" value=\"filtro3\">" ;
echo "<p> Scegli il tuo corso: <br><br></p>";
echo "<p>";
$seleziona_titolo = "SELECT * FROM catalogo_corsi
WHERE Categoria = '$_POST[categoria_corso]'";
$tipo_menu3="titolo_corso";
echo "<select name=' ".$tipo_menu3." '>";
/*mettiamo i dati trovati su un menù a tendina*/
mysql_query($seleziona_titolo) or die(mysql_error());
$result3 = mysql_query($seleziona_titolo);
while ($row = mysql_fetch_assoc($result3)) //mi mostra tutti i titoli
{
echo "<option value=' ".$row['Titolo']." '>".$row['Titolo']."</option>";
}
echo "</select>";
echo "</p>";
//inserisco un tasto
echo "<p>
<input type=\"submit\" value=\"Avanti\"
title=\"Fate click su questo pulsante avanzare nella scelta del corso\">
</p>";
echo "</form>";
mysql_close($link);
}
/*VISUALIZZIAMO IN UNA NUOVA FINESTRA LA SCHEDA DEL CORSO*/
function lancia_scheda_corso()
{
include "connessione_database_fabiogia.php";
//ricerchiamo nella tabella il valore selezionato nel menù a tendina
$scheda = "SELECT * FROM catalogo_corsi
WHERE Titolo = '$_POST[titolo_corso]'";
mysql_query($scheda) or die(mysql_error());
$result4 = mysql_query($scheda);
while ($row = mysql_fetch_assoc($result4)) //mi mostra tutti i titoli
{
echo "<form action= ' " .$row['Scheda_corso']. " ' target=\"_blank\">";
}
//inserisco un tasto
echo "<p>
<input type=\"submit\" value=\"Vai alla scheda\"
title=\"Fate click su questo pulsante per visualizzare la scheda del corso\">
</p>";
echo "</form>";
mysql_close($link);
}
?>
</body>
</html>
Ultima modifica di un moderatore: