In base al docente logato, devo estrarre da un campo di database (chiamiamolo Materia) solo le materie che quel docente insegna.
Come mi consigliate di fare?
In base al docente logato, devo estrarre da un campo di database (chiamiamolo Materia) solo le materie che quel docente insegna.
Come mi consigliate di fare?
non ho idea di quello che tu hai attualmente, ma cosi' sui due piedi direi una tabella "docenti", una tabella "materie" una tabella "unione" che associ docenti e materie.Originariamente inviato da Horus-Ra
In base al docente logato, devo estrarre da un campo di database (chiamiamolo Materia) solo le materie che quel docente insegna.
Come mi consigliate di fare?
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Mi sono spiegato male.
Il mio problema non è a livello del database (quello è già a posto), ma a livello di php. Il database contiene l'elenco di tutti i docenti e a fianco esiste un campo join che li lega alle rispettive materie.
Questo è il dilemma:
dopo essersi logato, il docente va in una pagina dove è presente un form. Qui c'è un menu a tendina, che deve contenere l'elenco delle sole sue materie.
Quello che non so è come fargli passare questa informazione dopo il login, cioè dirgli "controlla il campo Docenti e prendi solo le materie di quel docente".
Questo è il codice del controllo della login (semplificato).
Codice PHP:
<?
session_start();
include("config.php");
$scelta=$_POST['scelta'];
$login=$_POST['login'];
$pwd=$_POST['pwd'];
if(trim($login)=="" OR trim($pwd)==""){
echo "I campi Login e Password devono essere riempiti!";
}
if($scelta=='doc'){
$q = "SELECT * FROM InsegnantiLogin WHERE InsegnantiLogin_Login='$login'";
$query = mysql_query($q) or die(mysql_error());
$password=mysql_result($query,0, "InsegnantiLogin_Password");
$nome=mysql_result($query,0,"InsegnantiLogin_Nome");
$cognome=mysql_result($query,0,"InsegnantiLogin_Cognome");
if($pwd==$password){
header("Location: Docenti/docenti.php");
}
}
?>
Come faccio a passargli le variabili $nome e $cognome nella pagina di destinazione? Con quelle
potrei poi connettermi al database e controllare il campo vicino, che contiene le materie...
puoi salvare ciò che ti serve in variabili di sessione..
difficile capirsi.
cose' un campo join? forse un campo di riferimento per altra tabella?? che vuol dire conettersi al database e controllare il campo vicino che contiene le materie?
quale la struttura del db, dove sono, cioe', un quali tabelle sono questi valori?
per lo script sei alle solite. Usi mysql_result, non controlli la valorizzazione di $_POST
if(empty($_POST['var'] etc....
controlli la pwd con php invece che nella query, e se i campi materie fossero "vicini" li avrest gia' estratti con il select *
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Sì, intendo un campo che fa da tramite a due tabelle... attraverso una join appunto.cose' un campo join? forse un campo di riferimento per altra tabella??
ehm, in effetti il mysql_result è un residuo della mia ignoranza... giuro che ho già cominciato a cambiare tutte le altre pagine, mi sono dimenticato di farlo quiper lo script sei alle solite. Usi mysql_result, non controlli la valorizzazione di $_POST![]()
Questo invece non ci ho proprio pensato... dovrei farlo per ogni variabile derivante da un form, in qualsiasi pagina? Se lo trova vuoto, lo indirizzo alla pagina precedente in modo che reinserisca il valore?if(empty($_POST['var']))
Se io metto una variabile di questo tipopuoi salvare ciò che ti serve in variabili di sessione..
$_SESSION['nome'] = $nome;
nella pagina di destinazione lo richiamo con $nome=$_POST['nome']; come se provenisse da un form?
Grazie a entrambi per l'aiuto![]()
risposte random...
mysql result fa una chiamata per ogni campo. mysql_fetch_assoc un chiamata al buffer per ogni riga. Nel tuo caso tre chiamate contro una e non prendi gli altri campi.
Le variabili in arrivo da un POST-GET vanno sempre controllate. Non sai che ci puo' mettere lo user.Sia per vedere se sono valorizzate o meno, ma sopratutto lo siano con dei valori attesi.
Se salvi dei dati di sessione devi prima "aprire" una sessione, e i dati li troverai continuando la stessa sessione in altre pagine e sempre nella variabile di sessione $_SESSION. Quindi session_start() all'inizio di ogni pagina.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
non puoi semplicemente passarle col metodo get?Originariamente inviato da Horus-Ra
Come faccio a passargli le variabili $nome e $cognome nella pagina di destinazione? Con quelleCodice PHP:
header("Location: Docenti/docenti.php");
potrei poi connettermi al database e controllare il campo vicino, che contiene le materie...
Codice PHP:
header("Location: Docenti/docenti.php?nome=".$nome."&cognome=".$cognome);
I hope there is a way back with my talisman
so I look into myself to the days when I was just a child
come follow me to wonderland and see the tale that never ends
don't fear the lion nor the witch I can't come back
I'm lost but still I know there is another world
Potrei farlo, ma da quanto ne so risultano visibili sulla barra degli indirizzi, cosa che tendo a evitare... per quello in genere uso il POST.
Comunque grazie per le risposte. La mia conoscenza sul php aumenta di giorno in giorno grazie a questo forum![]()
be' sì, ma risulta visibile solo al docente...
ma questi docenti come sono salvati nel db? se hanno un id come chiave primaria? potresti semplicemente passare quella no?
la mia conoscenza del php è veramente basilare, sono daccordo con te, questo forum è come manna dal cielo...Comunque grazie per le risposte. La mia conoscenza sul php aumenta di giorno in giorno grazie a questo forum![]()
I hope there is a way back with my talisman
so I look into myself to the days when I was just a child
come follow me to wonderland and see the tale that never ends
don't fear the lion nor the witch I can't come back
I'm lost but still I know there is another world