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

    calcolare distanze di tempo

    Un utente, appena registrato, viene segnata la data della sua iscrizione su MySQL. Via via ad ogni logIn vorrei controllare quanto tempo è passato dalla sua iscrizione (bastano i giorni, non le ore o i secondi) e, a seconda dal tempo trascorso, eseguire uno script.

    Esempio:

    Al login controllo: se è passato meno di 1mese {$s=1}
    se è passato tra un mese e 3mesi {$s=2}
    ecc.


    Che tipo di campo mysql mi conviene utilizzare e come posso impostare lo script?

    Grazie.
    GdR Online - http://lenar.it/
    Yesterday is history. Tomorrow is mystery.
    Today is a gift. That's why it's called the present

  2. #2

    Re: calcolare distanze di tempo

    Originariamente inviato da Vre
    Un utente, appena registrato, viene segnata la data della sua iscrizione su MySQL. Via via ad ogni logIn vorrei controllare quanto tempo è passato dalla sua iscrizione (bastano i giorni, non le ore o i secondi) e, a seconda dal tempo trascorso, eseguire uno script.

    Esempio:

    Al login controllo: se è passato meno di 1mese {$s=1}
    se è passato tra un mese e 3mesi {$s=2}
    ecc.


    Che tipo di campo mysql mi conviene utilizzare e come posso impostare lo script?

    Grazie.
    Puoi usare un campo date per date_insert e un campo timestamp per l'aggiornamento (timestamp mysql) last_update. Si aggiorna ad ogni update.

    La query ti puo' rendere direttamente il numero dei giorni intercorrenti le due date.

    SELECT
    to_days(last_update) - to_days(data_insert) AS giorni
    FROM tabella


    troverai il dato in giorni nell'alias "giorni".


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    La data che è nel db mi basta confrontarla con la data del giorno [recuperlarla tipo con date() o time()]---
    e poi come è che si riprende un alias?

    Grazzzie!
    GdR Online - http://lenar.it/
    Yesterday is history. Tomorrow is mystery.
    Today is a gift. That's why it's called the present

  4. #4
    Originariamente inviato da Vre
    La data che è nel db mi basta confrontarla con la data del giorno [recuperlarla tipo con date() o time()]---
    e poi come è che si riprende un alias?

    Grazzzie!
    se la data di oggi allora sara':

    SELECT
    to_days(CURDATE()) - to_days(data_insert) AS giorni
    FROM tabella

    L'alias e' il nome del campo temporaneo in cui viene messo il risultato della sottrazione. visto che parli di date() o time() e' meglio precisare che sono funzioni php e non mysql. Forniscono il numero dei secondi.

    La query che ti ho suggerita utilizza funzioni mysql e la data di inserimento deve trovarsi in un campo in frm. DATE. La inserisci con:

    INSERT INTO tabella (data_ins, altri_campi) VALUES (now(), 'altri_valori');



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Grazzzie^___^capito.
    GdR Online - http://lenar.it/
    Yesterday is history. Tomorrow is mystery.
    Today is a gift. That's why it's called the present

  6. #6
    Scusami, ma se faccio sulla query:

    $dat=mysql_fetch_row();

    dove lo ritrovo l'alias "giorni"? $dat[0] no...


    Grazie e scusa per l'ennesima domanda.
    GdR Online - http://lenar.it/
    Yesterday is history. Tomorrow is mystery.
    Today is a gift. That's why it's called the present

  7. #7
    Originariamente inviato da Vre
    Scusami, ma se faccio sulla query:

    $dat=mysql_fetch_row();

    dove lo ritrovo l'alias "giorni"? $dat[0] no...


    Grazie e scusa per l'ennesima domanda.
    lo trovi nella posizione del campo determinata dalla query SELECT

    oppure con mysql_fetch_assoc lo trovi in:

    $dat['giorni']


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.