Visualizzazione risultati 1 fino 2 di 2

Discussione: controllo datetime

  1. #1
    provact non è connesso Utente giovane
    Data registrazione
    23-12-2009
    Messaggi
    40

    Predefinito controllo datetime

    Ciao a tutti.
    Nella tabella UTENTE ho un campo datetime chiamato Prenotazione.
    Come prima cosa la richiamo:

    Codice PHP:
    $MyQuery2 = "Select * FROM Utente WHERE Nome = $Nome AND Prenotazione = $Prenotazione";
    $Result = mysql_query($MyQuery2);
    $rs2 = mysql_fetch_array($Result);
    $Prenotazione = $rs2["Prenotazione"];
    $rs2->close;
    Ciò che dovrei fare è avviare una funzione di promemoria all'ingresso del sito una sola volta. Ho quindi agito in questo modo:

    Codice PHP:
    if ($Prenotazione < strftime("%Y-%m-%d")) {

    FUNZIONE DI INVIO + UPDATE CAMPO

    }
    Il tutto funziona correttamente salvo questa riga. L'invio e il settaggio del campo con il nuovo datetime funziona correttamente ma, nonostante il settaggio, i messaggi continuano ad essere inviati.

    Sapreste dirmi dove sbaglio? o.o

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Codice PHP:
    $MyQuery2 = "Select * FROM Utente WHERE Nome = $Nome AND Prenotazione = $Prenotazione";
    $Result = mysql_query($MyQuery2);
    $rs2 = mysql_fetch_array($Result);
    $Prenotazione = $rs2["Prenotazione"];
    $rs2->close;
    Questo codice è a titolo di esempio? Se sì nessun problema, altrimenti ci sono alcune cose da segnalare:
    • il codice non ha nessun effetto: all'inizio hai due variabili $Nome e $Prenotazione, il primo non viene toccato, alla seconda viene assegnato un valore necessariamente uguale a se stesso
    • $rs2 non è un oggetto, non ha il metodo close ;)
    • mysql_* è deprecato.



    Codice PHP:
    if ($Prenotazione < strftime("%Y-%m-%d"))
    "Se [i]$Prenotazione[i] è avvenuto prima di questo momento..." sembra una condizione sempre vera. Se $Prenotazione rappresenta il 29 novembre 2016 ore 16:00:00, la guardia sarà vera dal 29 novembre 2016 ore 16:00:01 fino alla fine dei tempi (a meno che, con l'azione UPDATE CAMPO tu non stia modificando Prenotazione spostandolo nel futuro).


    Ciò che dovrei fare è avviare una funzione di promemoria all'ingresso del sito una sola volta.
    Quali sono le condizioni necessarie all'avvio della funzione di promemoria? "Una sola volta" si riferisce ad una prenotazione o ad un utente?
    Per onorare il vincolo di unicità, la strada più veloce potrebbe essere inserire, nella base di dati, un'informazione sulla funzione di promemoria: true se è già stata inviata, false altrimenti. In questo modo il controllo diventa qualcosa come:
    Codice PHP:
    if (altre_condizioni() && $riga['promemoria_inviato'] == false)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •