Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

controllare con php che un campo date mysql sia vuoto

347 views
Skip to first unread message

Franz

unread,
Mar 19, 2011, 7:47:04 PM3/19/11
to
Salve a tutti,
mi sono imbattuto in una cosa che sono sicuro si risolverà con la solita
botta in testa e la frase "ma perchè non c'ho pensato prima??".
In sostanza ho un campo date in mysql e nel codice php vorrei
controllare che questo campo sia valorizzato. In caso contrario il div
che contiene l'informazione non deve essere mostrato.

Io ho scritto:

if(is_null($campo) || $campo == '' || $campo == '0000-00-00' || $campo
== NULL )
{
$stringa = '';
}
else
{
$stringa = '<div style="'.$styleDiv.'">'.$descrizione.': '.$campo.'</div>';
}

Questo non solo mi mostra sempre il div, ma me lo riempie con una data
che è sempre pari a 30 novembre 1999.

Vi chiedo: come mai un campo data vuoto (che so per certo essere vuoto)
mi viene interpretato invece come un campo valorizzato e con data 30
novembre 1999?

Voi come controllate i campi date?
Grazie a tutti per tirate d'orecchio che vorrete farmi :)

Franz

DaNieL

unread,
Mar 19, 2011, 10:05:51 PM3/19/11
to
On Mar 20, 12:47 am, Franz <f...@despammed.com> wrote:
> Salve a tutti,
> mi sono imbattuto in una cosa che sono sicuro si risolver con la solita
> botta in testa e la frase "ma perch non c'ho pensato prima??".

> In sostanza ho un campo date in mysql e nel codice php vorrei
> controllare che questo campo sia valorizzato. In caso contrario il div
> che contiene l'informazione non deve essere mostrato.
>
> Io ho scritto:
>
> if(is_null($campo) || $campo == '' || $campo == '0000-00-00' || $campo
> == NULL )
>         {
>                 $stringa = '';
>         }
>         else
>         {
> $stringa = '<div style="'.$styleDiv.'">'.$descrizione.': '.$campo.'</div>';
>         }
>
> Questo non solo mi mostra sempre il div, ma me lo riempie con una data
> che sempre pari a 30 novembre 1999.

>
> Vi chiedo: come mai un campo data vuoto (che so per certo essere vuoto)
> mi viene interpretato invece come un campo valorizzato e con data 30
> novembre 1999?
>
> Voi come controllate i campi date?
> Grazie a tutti per tirate d'orecchio che vorrete farmi :)
>
> Franz

hai fatto un var_dump($campo)?
che viene fuori?

solitamente i campi data 'vuoti' puntano al 1 gennaio 1970, il 30
novembre 99 non l'ho mai sentito

Franz

unread,
Mar 20, 2011, 6:47:56 AM3/20/11
to
Il 20/03/2011 3.05, DaNieL ha scritto:

> hai fatto un var_dump($campo)?
> che viene fuori?
>
> solitamente i campi data 'vuoti' puntano al 1 gennaio 1970, il 30
> novembre 99 non l'ho mai sentito

l'ho fatto...viene fuori NULL.
Anch'io sapevo del 1.1.1970...ma a me continua a stampare a video
30 novembre 1999.
Non capisco...l'hosting è su Aruba...magari c'è qualcosa che non va con
le impostazioni di MySQL?
Oppure davvero si tratterà di una sciocchezza che però non riesco a vedere.
Grazie comunque per la risposta

Franz

Franz

unread,
Mar 20, 2011, 7:05:27 AM3/20/11
to
Il 20/03/2011 3.05, DaNieL ha scritto:

> hai fatto un var_dump($campo)?
> che viene fuori?
>
> solitamente i campi data 'vuoti' puntano al 1 gennaio 1970, il 30
> novembre 99 non l'ho mai sentito

Allora...
se io faccio un var_dump direttamente sull'elemento dell'array di
mysql_fetch_assoc ottengo

var_dump($news['data_inizio']) --> Risultato: NULL

se invece nella funzione che ho costruito gli do il campo generico $campo

var_dump($campo) ---> Risultato: string(16) "30 novembre 1999"

Per inciso la banale funzione �:

function hideNullFields($descrizione,$campo, $styleDiv)
{
$stringa = '';



if(is_null($campo) || $campo == '' || $campo == '0000-00-00' || $campo

=== NULL)


{
$stringa = '';
}
else
{
$stringa = '<div style="'.$styleDiv.'">'.$descrizione.':
'.$campo.'</div>';
}

return $stringa;

}

Franz

Leonardo Serni

unread,
Mar 20, 2011, 9:47:50 AM3/20/11
to
On Sun, 20 Mar 2011 12:05:27 +0100, Franz <f...@despammed.com> wrote:

> if(is_null($campo) || $campo == '' || $campo == '0000-00-00' || $campo
>=== NULL)
> {
> $stringa = '';
> }

Il codice è corretto, anche se io l'avrei scritto - per paranoia - come

if (is_null($campo)||(''==$campo)||('0000-00-00'==$campo))
{
$stringa = '';
}

...rimane da verificare il codice che chiama quella funzione.

Leonardo

--

Enough, enough! But, stranger, ere we part,
Glancing farewell to each nefarious bier,
This warning would I beg you take to heart:
There is an end to e'en the worst career!

Franz

unread,
Mar 20, 2011, 4:21:10 PM3/20/11
to
Il 20/03/2011 14.47, Leonardo Serni ha scritto:

> Il codice è corretto, anche se io l'avrei scritto - per paranoia - come
>
> if (is_null($campo)||(''==$campo)||('0000-00-00'==$campo))
> {
> $stringa = '';
> }
>
> ...rimane da verificare il codice che chiama quella funzione.
>
> Leonardo
>

Ecco la chiamata:

echo hideNullFields('Data fine bando',
formatDate($row_bandi['data_fine']),
'color:#419127;font-weight:bold;margin-bottom:10px;font-size:11px;display:block;')

Ti prego dimmi che ho scritto una cazzata, perchè davvero non capisco da
dove esca questa data.

Ovviamente la query al db è:

$query_bandi = "SELECT * FROM bandi WHERE bandi.attivo = 1";

Grazie mille

Franz

Franz

unread,
Mar 20, 2011, 5:54:43 PM3/20/11
to
Il 20/03/2011 21.21, Franz ha scritto:

> Ecco la chiamata:
>
> echo hideNullFields('Data fine bando',
> formatDate($row_bandi['data_fine']),
> 'color:#419127;font-weight:bold;margin-bottom:10px;font-size:11px;display:block;')
>

Lo sapevoooooooo!!!
Era una cretinata.
Il problema stava nella funzione formatDate all'interno della chiamata.
Non gli facevo controllare che fosse vuoto il campo prima di formattare
la data.
Meno male va...
:)


Franz

Leonardo Serni

unread,
Mar 20, 2011, 6:45:16 PM3/20/11
to
On Sun, 20 Mar 2011 22:54:43 +0100, Franz <f...@despammed.com> wrote:

>> Ecco la chiamata:

>> echo hideNullFields('Data fine bando',
>> formatDate($row_bandi['data_fine']),
>> 'color:#419127;font-weight:bold;margin-bottom:10px;font-size:11px;display:block;')

>Lo sapevoooooooo!!!

Avete assistito all'effetto "papera di gomma" (anche noto come "effetto
orsacchiotto") < http://c2.com/cgi/wiki?RubberDucking >

Leonardo quack quack

DaNieL

unread,
Mar 20, 2011, 11:28:31 PM3/20/11
to
On Mar 20, 11:45 pm, Leonardo Serni <ser...@tin.it> wrote:
> Avete assistito all'effetto "papera di gomma" (anche noto come "effetto
> orsacchiotto") <http://c2.com/cgi/wiki?RubberDucking>


Lol io ho il pinguino gnu/linux (notare che cito anche gnu o stallman
mi uccide) in cartoncino, va bene uguale?

Franz

unread,
Mar 21, 2011, 6:18:36 AM3/21/11
to
Il 20/03/2011 23.45, Leonardo Serni ha scritto:

> Avete assistito all'effetto "papera di gomma" (anche noto come "effetto
> orsacchiotto")< http://c2.com/cgi/wiki?RubberDucking>
>
> Leonardo quack quack
>


:( :(

quack!
:(

Franz

Leonardo Serni

unread,
Mar 21, 2011, 7:20:05 AM3/21/11
to

>> Leonardo quack quack

>:( :(

>quack!
>:(

Veramente la papera di gomma in questo caso ero stato io :-)

Leonardo

0 new messages