Newsgroup: it.comp.www.php
Titolo: Inserimento voti...

PHP - PhpMyAdmin - MySql
Ho tre tabelle: studente (id_studente, cognome, nome, classe, ecc.) 
voti(id_voto, id_studente, data, voto, ecc.)
note(id_nota, id_studente, nota, ecc). Lo scopo è quello di consentire 
ad uno studente (loggandosi) di vedere i propri voti ed eventuali 
annotazioni. Per quanto riguarda la visualizzazione (SELECT), nessun 
problema, mi sono piantato con le INSERT  e le UPDATE (inserisco 
direttamente da PhpMyAdmin). Non riesco a progettare qualcosa di 
pratico...Per inserire un voto ad uno studente non so come partire. Il 
top per me sarebbe avere la possibilità di selezionare in automatico 
l'elenco di una classe e poter assegnare il voto o/e una annotazione a 
ciasun elemento. Vedo che in molti siti compaiono le caselle a 
menu...che selezionando una voce rimandano alla sezione voluta...
Ho cercato anche qualche script che grosso modo abbia le stesse 
problematiche (inserimento di voti) ma non ne ho trovati!
-- 
<<per contatti togliere gli asterischi>>

 direttamente da PhpMyAdmin).
Specifica meglio il tuo problema.
Perchè non riesci ad inserire i voti?

Negus ha scritto:

Perchè non ho proprio lo schema in testa che mi consenta almeno di 
partire! Ad esempio quando ho selezionato attraverso un SELECT un'intera 
classe, Cognome e nome, come faccio ad assegnare un eventuale votazione, 
ovvero come faccio ad assegnare ad un id_studente il suo voto. 
Probabilmente la cosa non è complicatissima ma ho bisogno di qualcuno 
che mi dica: "per fare gli spaghetti, devi prima mettere su l'acqua, 
salarla e poi..." :-)


 abbia le stesse problematiche
No, le problematiche no!!


Se voti è una tabella descritta come sopra, ovvero voti(id_voto,
id_studente, data, voto, ecc.) , e se hai l'id dello studente, per
assegnare un voto basta che lanci il comando SQL:
INSERT INTO voti(id_studente,data,voto,ecc.) VALUES(15,'2007-09-16',
7,...)
E' questo quello che cercavi?
Ciao,
    Fabrizio


Come faccio ad avere l'id studente? Ovvero mi servirebbero i nomi di una 
classe con accanto due caselle che mi consentano di inserire il voto e 
magari anche una annotazione!


 magari anche una annotazione!
Da una precedente SELECT ?
Non so se dentro la INSERT puoi annidare una SELECT ...

 voto e magari anche una annotazione!
Un paio di tracce. 
In una pagina (per esempio classe.php) a cui passi l'id della classe via
get (classe.php?idclasse=1) esegui una select con cui recuperi l'id e i
nomi degli studenti della classe relativa a $_GET['idclasse']. In tale
pagina visaulizzi i nomi degli studenti recuperati e accanto a ciascuno
di essi puoi, per esempio, aggiungere un form con due caselle di testo
(per il voto e l'annotazione) e un pulsante di submit. Attraverso il
form invvi i dati (idstudente, voto, annotazione) a una pagina che,
fatti i dovuti controlli del caso salva il voto nella tabella 'voti'.
In alternativa, accanto a ogni nome di studente puoi mettere un link
"Aggiungi un voto" a una pagina aggiungi_voto.php, passandogli via get
l'id dello studente. Nella pagina aggiungi_voto.php presenti un form
per inserire tutte le informazioni relative al voto da inserire e
infine invvi i dati a una pagina salva_voto.php che, fatti i dovuti
controlli, salva il voto nella tabella 'voti'.
In entrambi i casi ricordati sempre di verificare per bene tutti i dati
che passi alle varie pagine, indipendentemente dal metodo (get o post)
usato.
Ciao.
-- 
Federico

Federico ha scritto:

Comincio a vederci chiaro. Ho ancora qualche dubbio sul passaggio 
dell'id nella "classe.php": se capisco bene attraverso una SELECT mi 
prendo i dati necessari (e qui so come fare) ma per "stamparli" a video 
in una pagina, penso di non dover utilizzare queste formule:
$sql="SELECT * FROM.....
$result=mysql_query(....;
while($riga=mysql_fetch_array($result)) {.....
a questo punto posso visualizzare i risultati, in una pagina *.php sia 
in modo tabellare che non.
Se echo"$riga[id_studente o altro]come posso fare riferimento ad un form?


 posso fare riferimento ad un form?
Devi semplicemente scriverne il codice HTML. Riprendendo l'esempio di
sopra, se per ogni studente vuoi usare un form:
echo '<table>';
while ($studente = mysql_fetch_assoc($result)) {
    echo '<tr><td>'.$studente['cognome'].' '.$studente['nome'].'</td>
          <td><form method="post" action="salva_voto.php">
          Voto: <input type="text" name="voto" />
          Nota: <input type="text" name="nota" />
          <input type="hidden" name="idstudente" value="'.$studente[idstudente].'" />
          <input type="submit" name="btnSubmit" value="Inserisci" />
          </form></td></tr>';
}
echo '</table>';
Con la pagina salva_voto.php, dopo aver controllato i dati passati
('voto', 'nota', 'idstudente'), provvederai a salvare il voto nella
tabella voti.
Il codice che ho scritto è solo uno spunto da cui partire: modificalo e
completalo in base alle tue esigenze.
Ciao.
-- 
Federico

Federico ha scritto:

  Grazie. Per un paio di giorni ho impegni urgenti ma per il fine 
settimana conto di riuscire finalmente ad ottenere qualche risultato.
Facccio comunque sapere l'esito delle...prove
