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

    [Php - Mysql] Blocco valori

    Buongiorno a tutti.

    Ho un piccolo problema, non riesco a trovare un metodo utile per poter fare quanto mi serve.. spiego il mio problema:

    Ho quattro tabelle con nomi diversi ma con gli stessi campi, due campi si chiamano blocco (int) e blocco_utente (text).
    Io devo visualizzare dei lavori che hanno dei codici, ma se hanno blocco != 0 non devono poterlo modificare, il problema è questo: se uno visualizza il codice nel mentre che uno fa un update delle caselle potrebbe darmi dei problemi, allora ho pensato di salvarmi il codice del lavoro, il blocco ed il blocco utente in un altra tabella, ed il controllo farlo li... (senza far visualizzare l'articolo se uno lo stà modificando), per sbloccare le sessioni ed i blocchi userei il tempo (se valore blocco_sessione > 2 (ore) allora update di blocco e blocco_utente... ), voi cosa ne pensate? esiste un sistema più comodo per evitare sovrascritture errate?

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    potresti aggiungere un 2 campi in piu alla tabella, il campo 'status' TINYINT ,e il campo last_mod, int(12) .


    nel momento in cui l' admin apre il moudulo di modifica una query porta il campo status a 1, il che indica che la riga non deve essere interrogata da parte del sito , e logghi la data di modifica nel campo last_mod.

    se l' admin termina la modifica e lancia il form, una query riporta il campo status a 0,
    viceversa se l'admin abbandona la modifica e il campo status è rimasto a 1, o guidi l'admin nel processo di abbandono della modifica e quindi hai la possibilità di riportare quel campo a 0 con una query, oppure in accordo con la durata delle sessioni, ti leghi ad un evento frequente e li inserisci una query che verifica stato e tempo di modifica.
    Codice PHP:
    $query_str="SELECT * FROM tabella WHERE status=1";
    $query=mysql_query($query) or die(mysql_error());

    while (
    $res=mysql_fetch_array($query,MYSQL_ASSOC))
      {
      
    $today=get_date();
      if ((
    $today[0]-$res['last_mod']) > ini_get('session.gc_maxlifetime')) // se la differenza tra il unixtime di oggi e il unixtime di inizio modifica è superiore alla durata massima di una sessione 
        
    {
        
    // querry per riportare lo status a 0 
        
    }
      } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    il mio problema è questo:

    non sono solo gli admin a modificare, ovvero di admin ne avrò uno in questo programma e per fortuna non io xD, inoltre ci saranno circa una cinquantina di utenti, pensavo di aggiungere una tabella in cui copiare questi dati per evitare letture quando sovrascrivo, ovviamente pensavo pure io che il bottone chiudi porta ad una pagina per riportare il campo blocco al valore 0, ma inoltre non capisco il tempo unixtime *pensieroso* pensavo di mettere un valore di ora in blocco sessione (trasformando unix time in ore:minuti:secondi) e se il timestamp di quando fai la request è maggiore di un ToT forza e sblocca (ovviamente se sei in modifica fa un controllo sul blocco = 0 or = 1 prima dell'inserimento)

    che ne pensi?

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.