Mmmm.. Nel while potresti inserire una if, ad esempio un while così:

Codice PHP:
while ($ref mysql_fetch_row($query)) {
$giorno $ref[0];
if(
$giorno != date("d") {
echo 
$giorno.'
'
;
echo 
'Ho aggiornato. Aggiornare la pagina';
mysql_query("UPDATE nome_tabella SET giorno=date("d")");
} else {
echo 
$giorno.'
'
;
}
 } 
Non so se funzioni, però se nel ciclo while il giorno non corrisponde ad oggi lo aggiorna, se invece è uguale a oggi stampa a video il giorno normalmente. Cioè ciò che voglio dire è di usare != per vedere se qualcosa è differente