Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 26 su 26
  1. #21
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Devi modificare tutti gli if come per id

    $idd = (isset($olds[$arr['id']]) && $arr['id'] != $olds[$arr['id']]['id']) ?
    '<font color="red">'.$arr['id'].'</b>' : $arr['id']; ?>

    $cod = (isset($olds[$arr['id']]) && $arr['cod'] != $olds[$arr['id']]['cod']) ?
    '<font color="red">'.$arr['cod'].'</b>' : $arr['cod']; ?>

    $campo1 = (isset($olds[$arr['id']]) && $arr['campo1'] != $olds[$arr['id']]['campo1']) ?
    '<font color="red">'.$arr['campo1'].'</b>' : $arr['campo1']; ?>

    etc.

    PS: Nei tuoi record nella tabellaB salvi tutti i campi o solo quelli modificati?

  2. #22
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    24
    tutti i campi. Ho notato che il tuo codice funziona ma purtroppo se cambio un campo di un record diverso il campo del record precedentemente modificato mi ritorna nero. Da quello che ho capito mi seleziona solo il record modificato all'istante e nn tiene memoria di quelli modificati in precedenza. Si potrebbe ovviare a ciò inserendo un if subito dopo il while?

  3. #23
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Si comporta così perchè effettivamente fa un confronto con lo "stato" precendete, non con tutti gli altri.

    ES:
    TAB A:
    ID:1 - CAMPO1:AAA - CAMPO2:BBB (stato 2 - corrente)

    TAB B:
    ID:1 - CAMPO1:AAB - CAMPO2:BBC (Stato 0 - iniziale)
    ID:1 - CAMPO1:AAB - CAMPO2:BBB (Stato 1 - prima modifica)

    Il codice confronta lo stato2 con quello 1,non con quello 0. Quindi è cambiato CAMPO1, CAMPO2 è rimasto lo stesso dal precendete stato.

    Quindi la dimanda è: come vuoi fare il confronto del nuovo stato? Vuoi chidere se è mai stato modificato, se differisce da quando è stato inserito o cosa?

    Devi specificare meglio quello che devi fare e la situazione in cui ti trovi altrimenti è difficile darti una mano

  4. #24
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    24
    Perfetto. A me interessa che venga visualizzato in rosso il campo modificato almeno una volta e che se io amministratore ripristino il campo col valore iniziale, questo ritorni in "nero".
    Le tracce delle modifiche le ho già in un report dove vengono stampati tutti i record con relative modifiche.

  5. #25
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non credo sia fattibile con l'impostazione attuale. Puoi verificare che il campo sia cambiato, ma non puoi distinguere un "ripristino" da una modifica.
    Al massimo credo che puoi verificare se il campo attuale sia differente da quello iniziale

    Codice PHP:
    $query2" SELECT * FROM tabella2 ";
    $result2=mysql_query($query2) or die (mysql_error());
    $olds = [];
    while(
    $row mysql_fetch_assoc($result2)){
        if(!isset(
    $olds[$row['id']])){
            
    $olds[$row['id']] = $row;
       }


  6. #26
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    24
    E invece caro boots ci siamo riusciti Avevo provato con un un if senza l'olds. Poi col tuo consiglio il tutto funziona. Riesco a visualizzare il campo modificato e se questi torna allo stato attuale, viene visualizzato in "nero. Ora mi manca solo un login con ldap e il gioco è fatto. Non credo sia il caso di modificare il mio login.php. Conviene che cerco manuali e faccia un login ad hoc. Grazie ancora sei stato gentilissimo e di una disponibilità eccelsa. Se per caso hai consigli su questo altro intoppo è ben lieto.

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.