Visualizzazione risultati 1 fino 14 di 14

Discussione: [PHP] Verificare se una variabile è time()

  1. #1
    Guest

    Cool [PHP] Verificare se una variabile è time()

    Ciao a tutti, avrei una domanda. Come faccio a verificare se la variabile $data è time()??
    Perché, nel mio caso può essere sia un testo fino a 23 caratteri che un time().
    Come posso verificare tutto ciò?? xD
    Grazie mille, ciao Davide!! <3

  2. #2
    Guest

    Predefinito

    Crei una condizione con strlen() e is_numeric().

  3. #3
    Guest

    Predefinito

    Allora.... funziona solo che ne "trasforma" solo uno:
    Codice PHP:
    while($post = mysql_fetch_array($lista)) {
    $data = is_numeric($data) && strlen($data) == "10" ? date("d/m/Y -- H.i.s",$post["data"]) : $post["data"];

    echo
    "<!-- testo --> {$data}";
    }
    In pratica e come se il while non ci fosse! XD
    Grazie mille!! <3

  4. #4
    Guest

    Predefinito

    Io non ho capito il tuo problema. Che tipi di dato hai? Che cosa devi controllare precisamente?

  5. #5
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  6. #6
    Guest

    Predefinito

    Allora, io ho $data dove il contenuto viene prelevato dal database mysql.
    Questo contenuto può essere sia un time() che un testo semplicissimo di massimo 23 caratteri. Sto cercando, visto che $data può essere time() di trasformarla e non trasformare $data quando è un testo semplice. Ci sono riuscito, ma il mio metodo funziona solo una volta, non per tutti. Grazie mille!! **
    [codice php]

  7. #7
    Guest

    Predefinito

    Non capisco come tu possa salvare in un capo il timestamp oppure del testo semplice! Esistono i tipi di dato e i vari tipi di campi proprio per evitare questo.
    Codice PHP:
    while($post = mysql_fetch_array($lista))
    {
    $data = (is_numeric($data) && (strlen($data) == "10")) ? date('d/m/Y -- H.i.s', $post['data']) : $post['data'];
    echo
    '<!-- testo --> ' . $data;
    }
    A me alcune volte l'operatore ternario non funzionava come volevo se non specificavo bene l'ordine con le parentesi.

  8. #8
    Guest

    Predefinito

    Niente da fare....mi restituisce questo errore:
    Warning: date() expects parameter 2 to be long, string given in home.php on line 14
    Codice PHP:
    $data = (is_numeric($data) && (strlen($data) == "10")) ? date("d/m/Y -- H.i.s",$post["data"]) : $post["data"]; # <--- linea 14
    Riguardo alla tua domanda Federico quel campo in MySQL è di tipo varchar(999) xD

  9. #9
    Guest

    Predefinito

    Qui dimostri tutto Il campo varchar può contenere solamente 255 caratteri.
    Spiega quyello che vuoi fare e si cercherà di trovare una soluazione migliore.

  10. #10
    Guest

    Predefinito

    Ma ho sempre usato il varchar(999) xD
    Allora, in pratica quando aggiungo un dato, nella data posso mettere tramite un opzione sia un time ($data = time();) che un testo di 23 caratteri ($data = $_POST["data"];) naturalmente questo lo gestisco con un if:
    Codice PHP:
    if($data == "def") { $data = time(); }
    Perché, se si spunta l'opzione del checkbox $_POST["data"] sarà uguale a def.
    Molto semplice....ciauu e grazie!! **

  11. #11
    Guest

    Predefinito

    Dai una bella lettura: Tipi di dati in MySQL.

    Allora, crea la condizione che scrive in un campo apposito se è data o se è testo, poi registri una specie di switch che ti dice cosa è stato usato oppure controlli che un campo non sia vuoto così utilizzi l'altro.

  12. #12
    Guest

    Predefinito

    Scusami Federico, con il mio metodo perché non dovrebbe funzionare? O__o
    Funziona per un campo, dovrebbe funzionare per tutti noh? XD
    Il problema è dividere i risultati....e agire!

  13. #13
    Guest

    Predefinito

    Perché è contro senso utilizzare il campo per registrare un tipo di dato che ha il suo tipo specifico, poi dai come credi.

    Se la tua condizione non funziona posta la struttura della tabella e qualche record di esempio in modo da fare prove in lcoale.

  14. #14
    Guest

    Predefinito

    Allora la struttura è molto semplice del database:
    - id (auto_increment)
    - post (varchar(999))
    - data (varchar(999))
    Nel campo di invio/modifica c'è questo:
    Codice PHP:
    <?
    if(isset($_POST["testo"])) {
    $data = substr($_POST["data"],0,23);
    if((
    $data == "def") OR empty($data)) { $data = time(); }
    }
    ?>
    <!-- ...form che uso per la data... -->
    <input type="text" size="80" maxlength="23" value="<?=$post["data"];?>" id="data" name="data" /> <input type="checkbox" id="check" name="data" onClick="javascript:show();" value="def" /> Data attuale
    Quindi se io clicco su [X] Data attuale $_POST["data"], poi avrà valore di def.
    Non può essere tutti e due, perché agisce js in tal caso...mostra uno, nasconde l'altro.
    Poi, per ricavare la lista:
    Codice PHP:
    while($post = mysql_fetch_array($lista)) {
    $data = (is_numeric($data) && (strlen($data) == "10")) ? date("d/m/Y -- H.i.s",$post["data"]) : $post["data"];
    echo
    ".....{$data}";
    }
    Grazie mille!!

Regole di scrittura

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