• User Attivo

    Date per ogni singolo form

    Salve, ho bisogno di un vostro aiuto, in pratica ho creato un form in html, dove andrò a inserire e visualizzare dei numeri che ne mio caso sono acconti in un db mysql, qui sotto potete vedere un immagine del form
    ___p://imageshack.us/photo/my-images/831/38760961.png/

    Ora io vorrei che ogni singolo form abbia un suo form date, in modo da tener traccia di ogni modifica, e vorrei che ogni volta che si aggiunge un cifra nel form a sinistra a destra in automatico venga registrata la data del operazione, ma allo stesso tempo vorrei visualizzare i procedenti acconti con relativa data di inserimento....come query ho provato la seguente
    [PHP]$sql = "UPDATE acconti SET acc_1='$_GET[acc_1]', acc_2='$_GET[acc_2]', acc_3='$_GET[acc_3]', data_mod=sysdate() WHERE id='$_GET[id]'";[/PHP]

    Ma sinceramente non ho capito come distinguere i vari form in modo da renderli indipendenti.

    Grazie.


  • User Attivo

    Se ho ben capito il tuo problema avresti bisogno di due tabelle per fare questo.
    Una dedicata ai form. Es.: id - nome - tipo
    L'altra dedicata alle date (di cui parli) e/o altri eventuali elementi.
    La cosa sbagliata poi è che non avrai bisogno di UPDATE ma di INSERT di dati per i vari form.
    Così avrai ad ogni inserimento la data reale di quando è stato effettuato.
    Se hai ancora dubbi fatti risentire.


  • User Attivo

    Ciao, grazie per avermi risposto, una cosa che non mi è chiara come faccio a collegare poi i dati fra le due tabelle? tipo io ho la mia tabella dove inserisco i dati e ogni riga a il suo id come faccio poi a dire che a tipo l'id 80 corrisponde a x id della seconda tabella? non so se ho reso l'idea, attualmente ho diciamo rimediato, facendo diverse query per ogni form, ma penso che non sia la soluzione migliore....


  • User Attivo

    @Bivio said:

    Ciao, grazie per avermi risposto, una cosa che non mi è chiara come faccio a collegare poi i dati fra le due tabelle? tipo io ho la mia tabella dove inserisco i dati e ogni riga a il suo id come faccio poi a dire che a tipo l'id 80 corrisponde a x id della seconda tabella? non so se ho reso l'idea, attualmente ho diciamo rimediato, facendo diverse query per ogni form, ma penso che non sia la soluzione migliore....

    Come da esempio precedente.
    Tabella FORM: id - nome - tipo
    Tabella FORM_DATE: id - id_form - data - etc....
    Al campo id_form della tabella FORM_DATE corrisponderà l'id della tabella FORM.


  • User Attivo

    Penso di aver capito, adesso faccio un prova e posto il codice se non riesco.

    Grazie.


  • User Attivo

    Scusate doppio post ma non potevo editare il vecchio post.Comunque sono riuscito a capire come collegare le due tabella ecc...la cosa che non ho capito come faccio poi a inserire ogni singola data con una solo query


  • User Attivo

    Adesso non ti capisco ...... se scrivessi il codice mi risulterebbe più chiara la situazione.


  • User Attivo

    Si, scusami ma sto facendo un po di confusione, ecco un po di codice ho giusto creato un esempio per farti capire, e per vedere se va bene:
    File inserisci.php
    [HTML]
    <form name="form1" method="post" action="invia.php">
    <br><label>nome</label><input type="text" name="nome" id="nome"> </br>
    <br><label>cognome</label><input type="text" name="cognome" id="cognome"></br>
    <br><label>citta</label><input type="text" name="citta" id="citta"></br>
    <br><input type="submit" name="Invia" id="invia" value="Invia"></br>
    </form>
    [/HTML]
    invia.php
    [PHP]<?php
    $date = (date("d/m/Y H:i"));

    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('prova', $conn) or die(mysql_error());

    $sql = "INSERT INTO dati (nome,cognome,citta) VALUES ('$_POST[nome]','$_POST[cognome]','$_POST[citta]')";
    $sql2 = "INSERT INTO date (data_inserimento) VALUES ('$date')";

    $res = mysql_query($sql);
    $res2 = mysql_query($sql2);

    header("Location: home.php");
    ?>[/PHP]

    Fin qui tutto ok, ora la parte che ho un po di difficoltà e la modifica ecco i file:
    modifica.php
    [PHP]<?php

    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('prova', $conn) or die(mysql_error());

    $id = (int) $_GET['id'];
    $sql = "select * from dati where id = $id;";
    $sql1 = "select * from date where id = $id;";
    $res = mysql_query($sql);
    $row = mysql_fetch_array($res);
    $res1 = mysql_query($sql1);
    $row1 = mysql_fetch_array($res1);
    ?>
    <form name="form1" method="POST" action="edit.php">
    <br><label>id</label><input name="id" type="text" id="id" value="<?php echo $row['id']?>"> </br>
    <br><label>nome</label><input name="nome" type="text" id="nome" value="<?php echo $row['nome']?>"> </br>
    <br><label>cognome</label><input name="cognome" type="text" id="cognome" value="<?php echo $row['cognome']?>"></br>
    <br><label>citta</label><input name="citta" type="text" id="citta" value="<?php echo $row['citta']?>"></br>
    <br><label>Data Inserimento</label><input name="data_inserimento" type="text" id="data_inserimento" value="<?php echo $row1['data_inserimento']?>"></br>
    <br><label>Data nome</label><input name="data_nome" type="text" id="data_nome" value="<?php echo $row1['data_nome']?>"></br>
    <br><label>Data cognome</label><input name="data_cognome" type="text" id="data_cognome" value="<?php echo $row1['data_cognome']?>"></br>
    <br><label>Data citta</label><input name="data_citta" type="text" id="data_citta" value="<?php echo $row1['data_citta']?>"></br>
    <input type="hidden" value="<?php echo $_GET['id']?>" name="id" />
    <br><input type="submit" name="Invia" id="invia" value="Invia"></br>
    </form>[/PHP]

    edit.php

    [PHP]<?php

    $date = (date("d/m/Y H:i"));

    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('prova', $conn) or die(mysql_error());

    // preparo la query
    $sql = "UPDATE dati SET nome='$_POST[nome]', cognome='$_POST[cognome]', citta='$_POST[citta]' WHERE id='$_POST[id]'";

    $res = mysql_query($sql);

    header("Location: home.php");
    ?>[/PHP]

    home.php

    [PHP]<?php
    // mi connetto al database
    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('prova', $conn) or die(mysql_error());

    $sql = "SELECT * FROM dati";
    $res = mysql_query($sql, $conn);

    ?>
    <?php
    echo '
    <table border="1" cellpadding="3" cellspacing="3">
    <tr>
    <td><b>Nome</b></td>
    <td><b>Cognome:</b></td>
    <td><b>Citta</b></td>
    <td></td>
    <td></td>
    </tr>

    ';
    

    while ($row = mysql_fetch_array($res))
    {
    echo '
    <tr>
    <td>' . $row['nome'] . '</td>
    <td>' . $row['cognome'] . '</td>
    <td>' . $row['citta'] . '</td>
    <td><a href="modifica.php?id=' . $row['id'] . '">[modifica]</td>
    <td><a onclick="return(confirm('Attenzione: Sei sicuro di voler cancellare questo record?'))" href="delete.php?id=' . $row['id'] . '">[cancella]</a>
    </td>
    </tr>

    	';
    

    }

    echo '</table>

    ';

    ?>[/PHP]

    Con il codice postato riesco ad inserire e modificare i dati, l'unica difficoltà e come faccio ad inserire le date per gli altri campi?


  • User Attivo

    Secondo me hai ancora sbagliato il codice nel punto dolente.
    Ti faccio una domanda.
    Come recuperi l'id, della tabella dati, in modo da collegare la tabella date? Non ho visto variabili che ne fanno riferimento.
    La variabile di sistema che recupera l'ultimo "id" (autoincrement) è la seguente: mysql_insert_id().
    Da ciò adesso dovresti venirne a capo della situazione.
    Fammi sapere.


  • User Attivo

    Se ho capito bene intendi una cosa cosi?
    [PHP]<?php
    $date = (date("d/m/Y H:i"));

    $conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
    mysql_select_db('prova', $conn) or die(mysql_error());

    ///
    $sql = "INSERT INTO dati (nome,cognome,citta) VALUES ('$_POST[nome]','$_POST[cognome]','$_POST[citta]')";

    $id = mysql_insert_id();

    $sql1 = "INSERT INTO date(id,data_inserimento) VALUES ('$id', '$date')";

    $res = mysql_query($sql);
    $res1 = mysql_query($sql1);

    header("Location: home.php");
    ?>[/PHP]


  • User Attivo

    OK. Ci siamo intesi.
    Adesso che hai collegato per ogni form un id univoco hai la possibilità di controllare ogni singolo aggiornamento ed altro ancora.
    Se avessi ancora bisogno sono a disposizione.