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
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
Crei una condizione con strlen() e is_numeric().
Allora.... funziona solo che ne "trasforma" solo uno:
In pratica e come se il while non ci fosse! XDCodice 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}";
}
Grazie mille!! <3
Io non ho capito il tuo problema. Che tipi di dato hai? Che cosa devi controllare precisamente?
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]
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.
A me alcune volte l'operatore ternario non funzionava come volevo se non specificavo bene l'ordine con le parentesi.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;
}
Niente da fare....mi restituisce questo errore:
Warning: date() expects parameter 2 to be long, string given in home.php on line 14Riguardo alla tua domanda Federico quel campo in MySQL è di tipo varchar(999) xDCodice PHP:
$data = (is_numeric($data) && (strlen($data) == "10")) ? date("d/m/Y -- H.i.s",$post["data"]) : $post["data"]; # <--- linea 14
Qui dimostri tutto Il campo varchar può contenere solamente 255 caratteri.
Spiega quyello che vuoi fare e si cercherà di trovare una soluazione migliore.
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:
Perché, se si spunta l'opzione del checkbox $_POST["data"] sarà uguale a def.Codice PHP:
if($data == "def") { $data = time(); }
Molto semplice....ciauu e grazie!! **
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.
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!
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.
Allora la struttura è molto semplice del database:
- id (auto_increment)
- post (varchar(999))
- data (varchar(999))
Nel campo di invio/modifica c'è questo:
Quindi se io clicco su [X] Data attuale $_POST["data"], poi avrà valore di def.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
Non può essere tutti e due, perché agisce js in tal caso...mostra uno, nasconde l'altro.
Poi, per ricavare la lista:
Grazie mille!!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}";
}