Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50

    Operazioni sugli inserimenti

    Ciao a tutti, vi spiego il mio problema.

    Ho una pagina.php nella quale vengono inseriti dei dati numerici che poi vengono inseriti in un database. Nell'istante in cui si clicca su "inserisci" i dati vengono passati alla pagina ins_dati.php nella quale vengono effettuate le query per riempire il database.

    Adesso vorrei prendere due dati dell'inserimento, calcolare la media e inserire tale valore nella stessa tabella degli inserimenti, tutto questo nell'istante in cui si clicca su "inserisci" magari agendo sulla pagina ins_dati.php.
    Potete suggerirmi una soluzione semplice da utilizzare?

    Spero di essere stato chiaro.

    Grazie

  2. #2
    i due dati che vuoi prendere sono presenti nella riga che hai appena inserito?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    si esatto, dovrei prendere i due dati, fare la media e inserire il risultato nella stessa tabella.
    E' possibile? Se si potresti farmi un esempio?

    Grazie

  4. #4
    credo sia possibile direttamente da mysql ma non ne ho idea
    con php io
    1) recupererei l'ultimo id inserito con mysql_insert_id
    2) recupero i due valori tramite una select per id ed eseguo la media.
    3) eseguo l'update della tabella

    non puoi effettuare il calcolo della media subito prima dell'insert???

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    Non posso, perchè i valori che mi servono vengono inseriti inizialmente.
    Credo che la tua proposta sia fattibile, ci provo.
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    Avrei pensato ad un altro tipo di soluzione.
    Sarebbe possibile creare una funziona javascript che calcola direttamente la media prima di effettuare l'invio del form??
    Ogni suggerimento è gradito, posto il codice per effettuare eventuali prove.

    pagina.php
    Codice PHP:
     <form name="modulo" method="post" >     <table width=100border="0" align="center">     <tr>     <td width="439">Nominativo: </td>     <td width="153"><input type="text" name="nome" size="20" maxlenght="20" />        </td>   </tr>     <tr>     <td width="439">Targa: </td>     <td width="153"><input type="text" name="targa" size="20" maxlenght="20" /></td>   </tr>   <tr>     <td>Capacit&agrave; [Kg]:</td>     <td><input type="text" name="capacita" size="20" maxlenght="20" onkeyup="ControllaInt(this)" onchange="this.value=this.value.replace(/\,/,'.')"/></td>   </tr>   <tr>     <td>Volume [mc]:</td>     <td><input type="text" name="volume" size="20" maxlenght="20" onkeyup="ControllaInt(this)" onchange="this.value=this.value.replace(/\,/,'.')"/></td>   </tr><input type="button" value="inserisci" onClick="Modulo()"
    Modulo() è una funziona che controlla che i campi non siano vuoti e invia a pagina_inserimento.php .

    pagina_inserimento.php
    Codice PHP:
    <?php  include_once("include/config.php");  //recupero i dati inseriti nel form   
    $q="INSERT INTO mezzo (nome,targa,capacita, volume) VALUES ('".$_POST['nome']."','".$_POST['targa']."','".$_POST['capacita']."','".$_POST['volume']."')"
    $result=mysql_query($q);   
    if (!
    $result) {            
    header("Refresh: 0;URL=pagina.php");                 
    echo 
    "<script>";             
    echo 
    'alert ("Inserimento errato, riempire tutti i campi")';             
    echo 
    "</script>";           
    } else {               
    header("Refresh: 0;URL=pagina.php");             
    echo 
    "<script>";             
    echo 
    'alert ("Inserimento avvenuto con successo")';             
    echo 
    "</script>";          
    }  
    // chiudo la connessione a MySQL 
    mysql_close();      ?>
    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    up

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    suggerimenti?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    :quote:

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    50
    Ho risolto così, magari può servire:

    codice:
    <script language="javascript" type="text/javascript">
    // 
    //------------------------------------------------------
    //restituisce la media degli elementi passati come id
    //------------------------------------------------------
    function calcola_media()
    {
        var s = 0;
        for(var i = 0; i < arguments.length; i++)
        {
            var n = null;
            var v = arguments[i];
            if( typeof(v) == "string" )
            {
                n = document.getElementById(v).value.replace(",", ".");
                s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
            }
            else if(v instanceof Array)
            {
                for(var i = 0; i < v.length; i++)
                {
                    n = document.getElementById(v[i]).value.replace(",", ".");
                    s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
                }
            }
        }
        return (s/i);
    }
    
    function calcola()
    {
        var media = calcola_media("Text1", "Text2");
        document.getElementById("ris").value = media;
    }
    
    // ]]>
    </script>
    Dove Text1, Text2 sono gli id dei campi inseriti dei quali calcolo la media, mentre ris è l'id del campo in cui viene stampato il risultato

    codice:
    <input type="text" name="v_medio" id="ris" size="20" maxlenght="20"/>  <div id="div1"></div>
    Si accettano eventuali suggerimenti per migliorare lo script.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.