Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    ricercare il timestamp mandato dal GET nel db

    Ciao ragazzi,
    in pratica nel mio database ho un campo che si chiama data_iserimento che contiente la data in formato timestamp. Adesso però ho un problema, siccome ho costruito una calendario di eventi, al momento in cui io clicco su un giorno lui mi mette nel get il parametro "data" con il timestamp del giorno corrente. Ora come ben sapete il timestamp non è mai uguale quando devo fare la select e se gli metto:

    Codice PHP:
    "SELECT * FROM eventi WHERE data_inserimento = " $_GET['data'] . "" 
    lui ovviamente non mi trova nulla anche se effettivamente per quel giorno ci sono eventi. Come posso fare per ovviare a questo problema?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    il timestamp che c'è nel database è in formato unix o nel formato di default di mysql?

    se è unix credo che dovresti fare una cosa del genere:

    "SELECT * FROM eventi WHERE UNIX_TIMESTAMP(DATE(data_inserimento)) = " . $_GET['data'] . ""

    dove $_GET['data'] dev'essere un timestamp ottenuto nello stesso modo, cioè
    = mktime(0, 0, 0, date("n"), date("j"), date("Y"));
    comunque non so se si può fare quella cosa con mysql... come metodo fa un po' schifo.

    sarebbe più comodo secondo me salvare direttamente una data formattata nel database (la funzione di mysql andrebbe bene), e poi confrontarla con una data formattata allo stesso modo, che puoi facilmente manipolare con php.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    il timestamp l'ho fatto con la funzione time(); di php. Ho fatto così perchè avevo letto in un articolo che salvandolo così potevo avere molta flessibilità, infatti nel sito questo campo lo utilizzo in tanti modi e in tanti formati. il parametro data deve essere così:

    mktime(0, 0, 0, date("n"), date("d"), date("Y")); si può fare lo stesso?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    credo di si.. alla fine il timestamp dovrebbe essere lo stesso sia che indichi "06" febbraio o "6" febbraio nel mktime.

    il problema rimane il fatto che devi manipolare uno dei due timestamp o entrambi in modo da farli risultare uguali al secondo. e purtroppo non mi sembra che mysql sia molto versatile con i timestamp in formato unix

    http://dev.mysql.com/doc/refman/5.1/...functions.html

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao v.1,
    ci sono riuscito! scrivo la soluzione a chi può servire.


    Codice PHP:

    $data 
    $_GET['data'] ;

    $giorno_query date("d",$data);

    $mese_query date("m",$data);

    $anno_query date("Y",$data);

    $data $anno_query "/" $mese_query "/" $giorno_query;

    "SELECT * FROM eventi WHERE FROM_UNIXTIME(data_inserimento,'%Y/%m/%d') = '$data' "


    Grazie davvero v.1 per avermi aiutato, secondo te confrontando le date in questo modo funzionerà sempre? Io di solito quando cofronto le date lo faccio senza lo slash come separatore ma se nell'SQL tolgo gli slash e anche nel get non funziona.

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.