Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Operazioni sulle date

  1. #1

    Operazioni sulle date

    Ciao Ragazzi...
    ho già lasciato un post settimana scorsa e sono stato subito aiutato e la soluzione era molto buona, solo che sono "cambiate le carte in tavola" e quindi... sono nuovamente qui a chiedere info.

    Riassumendo: in base alla data/ora corrente devo visualizzare una "select" di persone presenti, ovvero visualizzare le persone "presenti" in un dato orario.

    I turni sono a cadenza settimanale, quindi ogni utente avrà 7 turni (14 timestamp) e quindi 14 colonne con il timestamp di inizio e fine turno per ogni giorno.

    Detto questo non ci sono problemi, fino a dora ma...
    i turni vengono aggiornati settimanalmente e ho trovato ancora una soluzione per permettere l'aggiornamento dei turni per la settimana successiva (magari a metà settimana) senza cancellare o incasinare quelli già presenti.

    Suggerimenti su come procedere?
    --------------------------------

    Vorrei però fare qualche cosa di + :rollo:

    Questa è una chicca ma, se fosse possibile... sarebbe una bella cosa! Invece di inserire 14 timestamp, vorrei inserire un identificativo del turno, esempio "G8" (turno dalle 10.00 alle 18.00) ma ho bruciato i neurini del cervello senza trovare soluzione Dovrei crearmi una tabella chiamata TURNI con le colonne INIZIOTURNO e FINETURNO e qui inserire in formato TIME gli orari dei turni, facendo poi attenzione ad utilizzare i turni a "cavallo" del giorno. Da qui poi utilizzare questi dati e adattarli al giorno corrente inserendo anno/mese/giorno (timestamp) per eseguire la select sui turni è veramente un'impresa...

    Suggerimenti su come procedere?
    --------------------------------

  2. #2
    se non ho capito male, dovresti avere una tabella con
    |Utente| Giorno_Sett| INIZIOturno| FINEturno|

    la tabba in questione prevede 6 o 7 (a seconda dei giorni) record per ogni utente. Hai la possibilità di aggiornare gli orari dei turni, ma vorresti che inserendo i nuovi, i vecchi rimangano?
    Se ho azzeccato potresti ad esempio inserire questi campi aggiuntivi:
    |UTENTE| G_SETT| SETT_ANNO| ANNO| INIZIO| FINE|

    se non erro in PHP esiste una funzione che calcola la settimana dell'anno, invece di modificare i dati esistenti, ne inserisci di nuovi per la settimana successiva, e quelli vecchi rimangono e possono essere consultati. Alla fine del tuo script di aggiornamento, potresti studiarti una funzione che può eliminare a scelta uno o più blocchi di record relativi alle settimane passate, o meglio ancora, trasferirli su un'altra tabella chiamata magari REGISTRO che ti da la possibilità di visionare anche i turni precedenti.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  3. #3
    se non ho capito male, dovresti avere una tabella con
    |Utente| Giorno_Sett| INIZIOturno| FINEturno|
    No, ora ho:

    |UTENTE|INIZIOTURNO1|FINETURNO1|INIZIOTURNO2|FINET URNO2|INIZIOTURNO3|FINETURNO4|INIZIOTURNO4|FINETUR NO4|INIZIOTURNO5|FINETURNO5|INIZIOTURNO6|FINETURNO 6|INIZIOTURNO7|FINETURNO7|

    ma vorresti che inserendo i nuovi, i vecchi rimangano?
    No, i dati inseriti hanno valenza settimanale e non mi interessa avere lo storico dei Turni.

    Devo inserire i nuovi dati aggiornati ma questi devono "essere operativi" SOLO dopo che i turni della settimana precedente sono esauriti.

  4. #4
    potresti risolvere con CRONTAB (c'è una pillola http://forum.html.it/forum/showthrea...hreadid=310412 a proposito sul forum) che esegue sul database uno script ad un'ora e giorno determinati. oppure potresti prevedere un doppione nella tabella cioè:

    - inserisci i dati nella tabella con un numero progressivo
    - elimini i dati che hanno due unità in meno rispetto all'ultimo inserimento

    in questo modo hai, prima di inserire:
    - record della scorsa settimana
    - record correnti

    e dopo l'inserimento:
    - record della scorsa settimana
    - record correnti
    - record settimana prossima

    dopo l'aggiornamento:

    - record correnti
    - record settimana prossima

    in questo modo non hai bisogno di un campo che ti dica QUALE settimana è in corso, ma può essere utile ai fini della visione.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

  5. #5
    mmhhh...ok , quanche cosa ho capito ma...
    per il discorso del turno identificato come "G8" invece di inserire 2 colonne INIZIOTURNO1 e INIZIOTURNO2 e fare una tabella aparte con tutte le specifiche dei turni e con questa tabella fare le select al db?

  6. #6
    cioè tu dici, invece di specificare per ogni record INIZIO e FINE turno, metti una colonna TURNO nella quale inserisci una variabile, e poi a parte un'altra tabella che per ogni variabile specifica un determinato TURNO? Non ci dovrebbero essere grossi problemi, ma secondo me non è pratico, primo perchè devi ogni volta chiamare due tabelle invece di una e poi perchè limita, seppur di poco, la tua flessibilità nell'inserire i turni dovendo per forza essere legato a quelli inseriti nell'altra tabella.
    "Una volta che si saranno esaurite senza successo tutte le possibilita', ci sara' una soluzione, semplice e ovvia, che saltera' immediatamente all'occhio di chiunque altro."

    Guardate: Il Miracolo delle Noci!!

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.