Visualizzazione risultati 1 fino 5 di 5

Discussione: Ultimo dato utente

  1. #1
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Post Ultimo dato utente

    Buongiorno, avrei un problema che non riesco a risolvere facilmente. Sto programmando una gestione accessi in PHP per un'azienda e avrei la necessità, ogni qual volta l'utente usi il suo codice personale per l'entrata e l'uscita, di vedere (in php e sql) qual è stata la sua ultima azione (se entrata uscita) e, se ad esempio è stata l'entrata, registrare l'uscita non appena inserirà un codice. Lo script è il seguente:

    Codice PHP:

    $seltip
    = mysqli_query($conn, "SELECT tipologia FROM accessi WHERE targa = '$targa' ORDER BY ID DESC");
    $row2 = mysqli_fetch_assoc($seltip);
    $tar = $row2['tipologia'];


    if(
    $tar == "uscita"){
    mysqli_query($conn, "INSERT INTO accessi (cognome, nome, targa, data, ora, tipologia) VALUES ('$cognome','$nome','$targa','$data','$ora','entrata')");
    echo
    "Entrata registrata.";
    }elseIF(
    $tar == "entrata"){
    mysqli_query($conn, "INSERT INTO accessi (cognome, nome, targa, data, ora, tipologia) VALUES ('$cognome','$nome','$targa','$data','$ora','uscita')");
    echo
    "Uscita registrata.";
    }
    Nel SELECT ho provato ad inserire un MAX() ma niente. L'ultima azione dell'utente la prende a casaccio non facendo differenza tra entrata e uscita. Avete una soluzione? Grazie in anticipo.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    "Targa" è un valore che l'utente inserisce da qualche parte? Immagino sia univoco, non capisco come mai hai un "ORDER BY ID DESC", in questo caso prenderesti il risultato con l'id maggiore.

    Ciao!

  3. #3
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Ciao Ale e grazie per la risposta. Si, ho provato anche cosi:

    Codice PHP:
    mysqli_query($conn, "SELECT tipologia FROM accessi WHERE targa = '$targa'");
    ma non va. Si, targa è il valore che dovrebbe definire l'entrata o l'uscita di una persona. Non esiste, in PHP, un comando che "forzi" la ricerca dell'ultima azione di un determinato utente? Grazie.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Citazione Originalmente inviato da ysoolder Visualizza messaggio
    Non esiste, in PHP, un comando che "forzi" la ricerca dell'ultima azione di un determinato utente?
    L'azione è un concetto del tuo applicativo, non di PHP.

    In ogni caso, l'ultimo record puoi ottenerlo se hai un campo auto_increment (se hai l'ID auto increment, come avevi fatto poteva andar bene), oppure se hai un campo dove salvi il timestmp.


    Prova a farti stampare i valori durante le varie queries per vedere dove/quale query è sbagliata o comunque restituisce un valore non atteso.

    Ciao!

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Se l'utente usa anche un ID univoco (o AUTOINCREMENT) che sia comunque univoco.
    Dovrai semplicemente effettuare la query per Tizio (che giustamente è registrato) uguale id 33.. WHERE ID=33 AND tipologia IS NOT NULL
    Stai filtrando per ID 33 e la tipologia che non può essere NULL e che quindi ti darà entrata o uscita o entrambe.
    Questo con il nome esteso lo si può definire come 'Controllo manuale accessi per utenti registrati e con codice personale'
    Ultima modifica di darbula : 09-08-2021 alle ore 19.01.41

Tags for this Thread

Regole di scrittura

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