• Consiglio Direttivo

    Ok, avevo tagliato io un pezzo postando le modifiche. 😄
    Varia la query così:
    [php]$sql="INSERT INTO voti (id_studente, tipo_voto, data_voto, voto)
    VALUES ('$id_studente*', '$tipovoto*', '$datavoto*', '$voto*')";[/php]

    😉


  • User

    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?


  • Consiglio Direttivo

    Varia allora così il form:
    [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" >
    <tr>
    <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>
    </tr>
    <?php
    while ($studente = mysql_fetch_array($result)){
    ?>
    <tr>
    <td><strong><?php echo $studente['id_studente']." ".$studente['cognome']." ".$studente['nome'].""; ?></strong></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>
    </tr>
    <?php
    }
    mysql_free_result($result);
    mysql_close($db);
    ?>
    <tr><td colspan="2"><input type="submit" name="button" id="button" value="Invia" /></td></tr>
    </form>
    </tr>
    </table>[/php]E così il 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'];

    for ($i=0; $i<=(count($id_studente)); $i++) {
    if (isset($voto*) && is_numeric($voto*))
    {
    $sql="INSERT INTO voti (id_studente, tipo_voto, data_voto, voto) VALUES ('$id_studente*', '$tipovoto', '$datavoto', '$voto*')";
    $query=@mysql_query($sql) or die (mysql_error());
    }
    }
    ?>[/php]


  • User

    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


  • Consiglio Direttivo

    Che voti hai messo agli altri? Ed in che formato? 🙂


  • User

    Classe 4A
    Ho inserito i seguenti voti:
    id1 Cognome1 Nome1 voto: 10
    id2 Cognome2 Nome2 voto: 20
    id3 Cognome3 Nome3 voto: 30

    Classe 4B
    Ho inserito i seguenti voti:
    id4 Cognome1 Nome1 voto: 40
    id5 Cognome2 Nome2 voto: 50
    id6 Cognome3 Nome3 voto: 60

    Nel db sono stati scritti:
    id3 voto: 30
    id6 voto: 60


  • Consiglio Direttivo

    A me ha preso tutto. :mmm:

    Ricontrolla lo script e verifica i numeri immessi.


  • User

    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


  • Consiglio Direttivo

    Non puoi mettere un <meta .....> in mezzo alla pagina. Puoi usare un header("Refresh:3;url=admin.php"); o un Js <script>setTimeout("top.location.href='admin.php'",3000);</script>

    Buon lavoro e piacere d'esserti stato utile. 😉


  • User

    Ancora grazie e, se avrò bisogno...so dove rivolgermi 🙂
    Buona estate
    M. Polliotto


  • Consiglio Direttivo

    Buona estate anche a te...e al rientro sii buono con tuoi studenti. 😄

    Alla prossima. :ciauz: