Ancora grazie e, se avrò bisogno...so dove rivolgermi
Buona estate
M. Polliotto
lupo53
@lupo53
Post creati da lupo53
-
RE: Script per assegnare i voti agli studenti
-
RE: Script per assegnare i voti agli studenti
Scoperto il problema.
Volendo inserire:
echo"<p>Inserimento eseguito correttamente</p> \n";
echo"<META HTTP-EQUIV='Refresh' CONTENT='3; URL=admin.php'>";
probabilmente crea problemi, pazienza vedrò come e dove inserire il reindirizzamento.
Colgo l'occasione per ringraziarti dell'enorme aiuto.
Sono un prof delle superiori che da qualche anno ha deciso di pubblicare, tra le altre cose, i voti degli studenti. Mi sono ingegnato per rendere possibile l'idea e, chiedendo aiuto e leggendo qua e la...
Cerco poi sempre di apportare delle migliorie sia grafiche che sostanziali.
Questa è stata una delle più interessanti perché prima dovevo inserire i voti ad uno ad uno...Cordialità
M. Polliotto
http:\polliotto.altervista.org
-
RE: Script per assegnare i voti agli studenti
Classe 4A
Ho inserito i seguenti voti:
id1 Cognome1 Nome1 voto: 10
id2 Cognome2 Nome2 voto: 20
id3 Cognome3 Nome3 voto: 30Classe 4B
Ho inserito i seguenti voti:
id4 Cognome1 Nome1 voto: 40
id5 Cognome2 Nome2 voto: 50
id6 Cognome3 Nome3 voto: 60Nel db sono stati scritti:
id3 voto: 30
id6 voto: 60 -
RE: Script per assegnare i voti agli studenti
Ho provato ad inserire il voto a due classi (3 alunni per classe) ma mi ha salvato solo gli ultimi due id, vale a dire id_3 e id_6
-
RE: Script per assegnare i voti agli studenti
Perfetto! Funziona tutto benissimo anche il fatto che se non inserisco il voto ad uno studente (magari assente) non viene inserito nulla nel db (che è esattamente quello che serve perché calcolo le medie...).
Ci sarebbe ancora un piccolo ritocco...Poiché l'inserimento dei voti a molti studenti si riferisce solo ad un compito in classe, mi sembra inutile ripetere ad ogni riga la data (viene effettuata per tutti nello stesso giorno) e la tipologia (scritto). Sarebbe possibile indicare in una casella sola buona per tutti gli studenti? -
RE: Script per assegnare i voti agli studenti
tuttivoticlasse.php
<?php
include("include/config.php");
include("include/connessione.php");$classe=$_POST['tuttivoti'];
$oggi=date("Y-m-d");$sql="SELECT *
FROM studenti
WHERE classe = '$classe'
ORDER BY cognome ASC, nome ASC";$result = mysql_query($sql,$db)or die ("Errore nella query: " . mysql_error());
?>
<table>
<form id="form_ins_voti" name="insertvoti" method="post" action="salvatuttivoti.php" >
<?php
while ($studente = mysql_fetch_array($result)){
?>
<tr>
<td><strong><?php echo $studente['id_studente']." ".$studente['cognome']." ".$studente['nome'].""; ?></strong></td>
<td>data:<input name="datavoto[]" type="text" id="datavoto" size="10" value="<?php echo"$oggi"?>" /></td>
<td>tipo:
<select name="tipovoto[]" id="tipovoto">
<option value="Scritto">Scritto</option>
<option value="Orale">Orale</option>
</select></td>
<td>voto:
<input type="text" name="voto[]" id="voto" size="3" />
<input type="hidden" name="id_studente[]" value="<?php echo $studente['id_studente']; ?>" />
</td>
<?php
}
mysql_free_result($result);
mysql_close($db);
?>
<td><input type="submit" name="button" id="button" value="Invia" /></td>
</form>
</tr>
</table>salvatuttivoti.php
<?php
include("include/config.php");
include("include/connessione.php");$id_studente=$_POST['id_studente'];
$datavoto=$_POST['datavoto'];
$tipovoto=$_POST['tipovoto'];
$voto=$_POST['voto'];//var_dump ($id_studente);
//echo "<br />";
//var_dump ($datavoto);
//echo "<br />";
//var_dump ($tipovoto);
//echo "<br />";
//var_dump ($voto);
//echo "<br />";for ($i=0; $i<=(count($id_studente)); $i++) {
if (isset($voto*) && is_numeric($voto*)) //nel frattempo controlliamo che sia un valore numerico
{
// list($Y, $m, $d)=explode("-",$datavoto*);
// $datavoto*=mktime(0,0,0,$Y,$m,$d);
$sql="INSERT INTO voti (id_studente, tipo_voto, data_voto, voto)
VALUES ('$i', '$tipovoto*', '$datavoto*', '$voto*')";
$query=@mysql_query($sql) or die (mysql_error());
}
}
?> -
RE: Script per assegnare i voti agli studenti
No, tutto come prima, anzi un poco peggio...
Riesco ad inserire i voti per la classe 4A (composta da tre studenti con id_studente1, 2 e 3) e mi inserisce i voti per id 0, 1 e 2, non inserendo ovviamente il voto al 3...La classe successiva 4B (tre studenti 4,5 e 6) se inserisco i voti vanno ad aggiungersi agli studenti 0, 1 e due...Eppure l'HTML è corretto perchè riporta gli id corretti...! -
RE: Script per assegnare i voti agli studenti
l'HTML della classe 4B(uno studente...):
<form id="form_ins_voti" name="insertvoti" method="post" action="salvatuttivoti.php" >
<table border="1">
<tr>
<td><strong>4 Cognome4 Nome4</strong></td>
<td>data:<input name="datavoto[]" type="text" id="datavoto" size="10" value="2009-08-18" /></td>
<td>tipo:
<select name="tipovoto[]" id="tipovoto">
<option value="Scritto">Scritto</option>
<option value="Orale">Orale</option>
</select>
</td>
<td>voto:
<input type="text" name="voto[]" id="voto" size="3" />
<input type="hidden" name="id_studente[]" value="4" />
</td>
</tr>
<tr> -
RE: Script per assegnare i voti agli studenti
Le ho fatte ma senza risultati. I voti vengono sempre inseriti nella classe con gli studenti: id_studente[1] id_studente[2] id_studente[3] anzi, mi sono accorto consultando il db che viene inserito un voto ad uno studente con id_studente[0] che nella tabella studenti non esiste!
-
RE: Script per assegnare i voti agli studenti
Non vedo post oltre il precedente. Ho notato comunque che nell'inserimento dei voti della classe di prova 4B nel risultato del test che riguarda l'id_studente compare:
array(3) {
[0]=>
string(1) "4"
[1]=>
string(1) "5"
[2]=>
string(1) "6"
}
Non dovrebbero essere [4] [5] [6]??? -
RE: Script per assegnare i voti agli studenti
Stesso problema...:-(
Classe 4A, html:
[html]<table>
<form id="form_ins_voti" name="insertvoti" method="post" action="salvatuttivoti.php">
<tr>
<td><strong>1 Cognome1 Nome1</td>
<td><input name="idstudente_1" type="text" id="idstudente_1" size="3" value="" />
data:
<input name="datavoto[1]" type="text" id="datavoto[1]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[1]" id="tipovoto[1]"><option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="voto[1]" id="voto[1]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="1" />
<tr>
<td><strong>2 Cognome2 Nome2</td>
<td><input name="idstudente_2" type="text" id="idstudente_2" size="3" value="" />
data:
<input name="datavoto[2]" type="text" id="datavoto[2]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[2]" id="tipovoto[2]"><option>scritto</option>
<option>orale</option></select>
voto:
<input type="text" name="voto[2]" id="voto[2]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="2" />
<tr>
<td><strong>3 Cognome3 Nome3</td>
<td><input name="idstudente_3" type="text" id="idstudente_3" size="3" value="" />
data:
<input name="datavoto[3]" type="text" id="datavoto[3]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[3]" id="tipovoto[3]"><option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="voto[3]" id="voto[3]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="3" />
<input type="submit" name="button" id="button" value="Invia" />
</form>[/html]Ho inserito nel "salvatuttivoti" anche: var_dump ($id_studente);
e risulta:array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } array(3) { [1]=> string(10) "2009-08-18" [2]=> string(10) "2009-08-18" [3]=> string(10) "2009-08-18" } array(3) { [1]=> string(7) "scritto" [2]=> string(7) "scritto" [3]=> string(7) "scritto" } array(3) { [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "1" }
........................................
Questo è invece l'HTML della classe 4B (che non funziona):
[html]<table>
<form id="form_ins_voti" name="insertvoti" method="post" action="salvatuttivoti.php">
<tr>
<td><strong>4 Cognome4 Nome4</td>
<td><input name="idstudente_4" type="text" id="idstudente_4" size="3" value="" />
data:
<input name="datavoto[4]" type="text" id="datavoto[4]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[4]" id="tipovoto[4]"><option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="voto[4]" id="voto[4]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="4" />
<tr>
<td><strong>5 Cognome5 Nome5</td>
<td><input name="idstudente_5" type="text" id="idstudente_5" size="3" value="" />
data:
<input name="datavoto[5]" type="text" id="datavoto[5]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[5]" id="tipovoto[5]"><option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="voto[5]" id="voto[5]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="5" />
<tr>
<td><strong>6 Cognome6 Nome6</td>
<td><input name="idstudente_6" type="text" id="idstudente_6" size="3" value="" />
data:
<input name="datavoto[6]" type="text" id="datavoto[6]" size="10" value="2009-08-18" />
tipo:
<select name="tipovoto[6]" id="tipovoto[6]"><option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="voto[6]" id="voto[6]" size="3" /><br /><br />
<input type="hidden" name="id_studente[]" value="6" />
<input type="submit" name="button" id="button" value="Invia" />
</form>[/html]E questo il risultato:
array(3) { [0]=> string(1) "4" [1]=> string(1) "5" [2]=> string(1) "6" } array(3) { [4]=> string(10) "2009-08-18" [5]=> string(10) "2009-08-18" [6]=> string(10) "2009-08-18" } array(3) { [4]=> string(7) "scritto" [5]=> string(7) "scritto" [6]=> string(7) "scritto" } array(3) { [4]=> string(1) "2" [5]=> string(1) "2" [6]=> string(1) "2" }
-
RE: Script per assegnare i voti agli studenti
Ho apportato le modifiche. Tutto funziona a meraviglia... solo per i primi tre studenti! Ovvero tre studenti (di prova) della classe 4A che richiamo con la SELECT:
$sql="SELECT *
FROM studenti
WHERE classe = '$classe'
ORDER BY cognome ASC, nome ASC";Se seleziono un'altra classe ed inserisco i voti, il form viene visualizzato correttamente, con altri nomi della classe selezionata (e, ovviamente, altri id_studente) ma all'invio i voti non vengono inseriti e non viene visualizzato nessun errore (nemmeno se tolgo la @ a: $query=@mysql_query($sql))
Sono ritornato alla prima versione della data (che non mi da problemi) per cui il file "salvatuttivoti.php" risulta:
<?php
include("include/config.php");
include("include/connessione.php");$datavoto=$_POST['datavoto'];
$tipovoto=$_POST['tipovoto'];
$voto=$_POST['voto'];for ($i=0; $i<=(count($tipovoto)); $i++)
{
if (isset($voto*) && is_numeric($voto*)) //nel frattempo controlliamo che sia un valore numerico
{
// list($Y, $m, $d)=explode("-",$datavoto*);
// $datavoto*=mktime(0,0,0,$Y,$m,$d);
$sql="INSERT INTO voti (id_studente, tipo_voto, data_voto, voto)
VALUES ('$i', '$tipovoto*', '$datavoto*', '$voto*')";
$query=@mysql_query($sql) or die (mysql_error());
}
}
?> -
RE: Script per assegnare i voti agli studenti
Ringrazio per la solerzia.
Ho modificato il codice secondo indicazioni ma, nella prova di inserimento che ho fatto mi compare:
Notice: Undefined offset: 0 in c:\programmi\easyphp1-8\www\salvatuttivoti.php on line 12
Notice: Undefined offset: 1 in c:\programmi\easyphp1-8**\www\salvatuttivoti.php** on line 12
ecc... per tutti i voti inseriti.
inserico il codice della pagina "salvatuttivoti" che ho dovuto leggermente modificare in quanto il nome dei campi della tabella voto sono diversi dall'esempio**:
**<?php
include("include/config.php");
include("include/connessione.php");$datavoto=$_POST['datavoto'];
$tipovoto=$_POST['tipovoto'];
$voto=$_POST["voto"];for ($i=0; $i<=(count($voto)); $i++)
{
if ($voto*!= "")
{
list($Y, $m, $d)=explode("-",$datavoto*);
$datavoto*=mktime(0,0,0,$m,$d,$Y);
$sql="INSERT INTO voti (id_studente, tipo_voto data_voto, voto)
VALUES ('$i', '$tipovoto*', '$datavoto*', '$voto*')";
$query=@mysql_query($sql) or die (mysql_error());
}
}?>
Ho riscontrato poi anche un altro (spero piccolo) problema: il campo "data_voto" della tabella "voti" è del tipo "DATE" e non "TIMESTAMP", sarebbe opportuna una modifica? -
Script per assegnare i voti agli studenti
Devo inserire in un db i voti conseguiti dagli studente di una classe ed ho il seguente form:
[php]<?php
include("include/config.php");
include("include/connessione.php");$classe=$_POST['tuttivoti']; //la classe che ho selezionato
$oggi=date("Y-m-d");$sql="SELECT *
FROM studenti
WHERE classe = '$classe'
ORDER BY cognome ASC, nome ASC";$result = mysql_query($sql,$db)or die ("Errore nella query: " . mysql_error());
?>
<table>
<form id="form_ins_voti" name="insertvoti" method="post" action="salvatuttivoti.php">
<?php
while ($studente = mysql_fetch_array($result)){
?>
<tr>
<td><strong><?php echo"$studente[cognome]"?></strong> <?php echo"$studente[nome]"?></td>
<td><input name="<?php echo"idstudente_".$studente['id_studente'].""?>" type="text" id="<?php echo"idstudente_".$studente['id_studente'].""?>" size="3" value="" />
data:
<input name="<?php echo"datavoto_".$studente['id_studente'].""?>" type="text" id="<?php echo"datavoto_".$studente['id_studente'].""?>" size="10" value= <?php echo"$oggi"?> />
tipo:
<select name="<?php echo"tipovoto_".$studente['id_studente'].""?>" id="<?php echo"tipovoto_".$studente['id_studente'].""?>">
<option>scritto</option>
<option>orale</option>
</select>
voto:
<input type="text" name="<?php echo"voto_".$studente['id_studente'].""?>" id="<?php echo"voto_".$studente['id_studente'].""?>" size="3" /><?php
}
mysql_free_result($result);
mysql_close($db);
?>
<input type="submit" name="button" id="button" value="Invia" />
</form>[/php]Fin qui (pare) tutto bene. Il form si presenta corretto (almeno sembra). Non so però come recuperare i dati per inserirli nel db.