Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Generazione Log Modifiche Database

    Ciao a tutti,

    volevo chiedervi una mano... io ho una pagina molto semplice che si appoggia ad un db così strutturato:

    Id | Barcode | CodiceArticolo | Descrizione |

    che serve sostanzialmente per la ricerca di articoli tramite codice a barre. Ci sono poi altre tre pagine "Inserisci articoli" - "Modifica Articoli" - e "Elimina Articoli" .

    Ora quello che volevo fare era strutturare una una tabella per gestire il log delle modifiche apportate al db , quindi quando qualcuno ha inserito , modificato o eliminato un articolo.

    Per il login degli utenti uso le sessioni.

    Ho cercato in giro ma non trovo nulla di esauriente ... o che comunque faccia al caso mio..

    Mi date qualche spunto ???

    Grazie mille in anticipo



  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Già potresti aggiungere alcuni campi data, utente per la creazione e la modifica.
    Per la cancellazione puoi crearti una tabella con gli stessi campi più un id autoincrementato nella quale inserisci il record prima di eleminarlo nell’altra tabella.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    oppure una tabella di log con i campi data, autore, azione effettuata (cancellazione inserimento, modifica) e il riferimento all'oggetto modificato
    in teoria, potresti anche aggiungere un campo che in caso di modifica ti faccia vedere i dati precedenti alla modifica effettuata

  4. #4
    ciao ragazzi , grazie per i suggerimenti .... ma al mio "livello" avrei bisogno di qualche esempio un po piu "pratico".... altrimenti non vado da nessuna parte.....

    ad esempio io ho le seguenti query , rispettivamente per l'inserimento e la modifica degli articoli ..... ma non so come "agganciarci il pezzo di codice per la generazione dei log:

    Codice PHP:
    if(isset($_POST['inserisci'])){ 
        
    header("Cache-Control: no-cache"); 
        
    header("Expires: -1");  

    $HOST 'localhost';
     
    $USER '';
     
    $PASSWORD '';
    mysql_connect("$HOST","$USER","$PASSWORD");

    mysql_select_db("my_");

    $id'NULL';
    $barcode $_POST['barcode'];
    $codice $_POST['codice'];
    $descrizione $_POST['descrizione'];


    $toinsert "INSERT INTO `Db`
          (id, barcode, codice, descrizione, )
             VALUES
             ('
    $id',
               '
    $barcode',
              '
    $codice',
              '
    $descrizione'
             )"
    ;


    $res mysql_query($toinsert);
    if(
    $res){
       

          echo(
    "INSERITO");

    header("location: inserisci_articoli.php");
       
       } 

    else
       {
       echo(
    "ERRORE '$id',
               '
    $barcode'
              '
    $codice'
              '
    $descrizione'
              '"
    ); 
    e

    Codice PHP:
    ?php

    if(isset($_POST['cerca'])){

    include(
    "connectDB.php");

    mysql_select_db("my_web1105");

    $id $_POST['id'];

    $sql "SELECT * FROM `DbTcpos` WHERE id = '".$id."'";

    $result mysql_query($sql);

    while(
    $r mysql_fetch_array($result)) {

    $id=$r['id'];
    $barcode=$r['barcode'];
    $codice=$r['codice'];
    $descrizione$r['descrizione'];


    echo 
    "<table align='center' cellspacing='50px' style='
                                                  margin-left: 356px;
                                                     font-size: 50px;
                               
                                                       '>
       <tr>
          <td>ID</td>
          <td>BARCODE</td>
          <td>CODICE</td>
          <td>DESCRIZIONE</td>
          
       </tr>   
       <tr>
          <td><input name='id' readonly='readonly' size='6' value='"
    .$id."'style='text-align:center; height: 40px'>
          <td><input name='barcode'  size='20' type='text' value='"
    .$barcode."'style='text-align:center; height: 40px'></td>
         <td><input name='codice' size='10' type='text' value='"
    .$codice."'style='text-align:center; height: 40px'></td>
          <td><input name='descrizione' size='50' value='"
    .$descrizione."'style='text-align:center; height: 40px'>
          
       </tr>
       <tr>
          <td align='center'; colspan='4'><button type='submit' name='salva' value='SALVA' style='margin-top:60px; margin-bottom: 60px;'>S A L V A</button>                               
          </td>
       </tr>
       </table>
       </form>"
    ;
       

    }
    }


    if(isset(
    $_POST['salva'])){ 
        
    header("Cache-Control: no-cache"); 
        
    header("Expires: -1");  

        
     include(
    "connectDB.php");
     
     
    mysql_select_db("my_");

    $id $_POST['id'];
    $barcode $_POST['barcode'];
    $codice $_POST['codice'];
    $descrizione $_POST['descrizione'];



    $toinsert "UPDATE `DbTcpos` SET
          barcode='
    $barcode', codice='$codice', descrizione='$descrizione'
          
           WHERE id = '"
    .$id."'";


    $res mysql_query($toinsert);
    if(
    $res){
       

          echo(
    "INSERITO");

    header("location: modifica_articoli.php");
       
       } 

    else
       {
       echo(
    "ERRORE ");

    mysql_close($connessione);
    }
    }
    ?> 
    come potrei "agganciarci" il pezzo di codice necessario ?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    dentro questa if
    Codice PHP:
    if($res){ 
    inserisci una query di insert sulla nuova tabella di log
    nella query devi sempre passare l'id dell'oggetto che è stato inserito o modificato (nel caso di inserimento lo puoi recuperare con la funzione mysqli_insert_id(), che ti restituisce l'id autoincrement della tabella dei prodotti dove hai fatto l'insert)

    tutto questo prima di
    Codice PHP:
    echo("INSERITO"); 
    due note a margine:
    - non usare mysql_*, sono deprecate... passa a mysqli_* o PDO
    - io non cancellerei mai gli item dal DB, metterei un flag "attivo/disattivo" e segnerei l'azione di attivazione/disattivazione nella tabella di log

  6. #6
    ok....ci provo!!!!

    mi metto all'opera e ti faccio sapere!

    Grazie!!!!

  7. #7
    Ciao clasku,

    OK .... dopo qualche prova .... alla fine ho messo in piedi il sistemino di log , grazie anche alle tue dritte .

    Dato poi che ... l'appetito vien mangiando ... ho messo dentro la tabella anche altri campi che servono per tracciare UTENTE | IP | BROWSER | TIPO DI CLIENT | .....

    Sono davvero soddisfatto !!!!!

    Ora che tuttto funzia ..... mi studio TRIGGER e PDO .... e rimetto tutto in piedi in maniera piu sicura.

    Grazie ancora per le info !!

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    De nada, buon lavoro

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 © 2024 vBulletin Solutions, Inc. All rights reserved.