Originariamente inviato da pinzo
mi correggo... sembra che sia la query di inserimento a non funzionare....
un primo errore e' qui:

Codice PHP:
    $query "SELECT visits from counter where day='$today'";
    
$results mysql_query($query) or die(mysql_error()."
ottenendo le visite odierne"
);  
    
$visits_till_now mysql_fetch_array($resultsMYSQL_ASSOC);
    if (
is_numeric($visits_till_now)){ 
$visits_till_now e' un array e non una variabile. Questo e' un errore.

Se dentro il campo hai un numero usare is_numeric() per vedere se hai effettivamente un numero funziona ma sarebbe piu' logico verificare che tu non riceva un FALSE da $result cosa che gia' fai con il DIE(). Quindi si presume che se la query e' valida, il campo visits e' numerico con default 0, dovrai ricevere sicuramente uno 0 oppure il valore corrente.

Se hai un solo record per giorno dovresti verificare se il record del giorno gia' esiste. Se non esiste lo crei con INSERT e mettendo il contatore a 1. Poi incrementi successivamente il contatore con un update nelle altre visite.

quindi velocemente con simil codice parlato:

codice:
select count(*) as tot from counter where day = CURDATE();
mysql_query.....
$tot_record = mysql_fetch_assoc($result)

if($tot record['tot'] == 0 ) { 

insert into tabella (data, visits) value (curdate(), 1);

} else { update tabella set visits = visits + 1 where data = curdate()  }
e poi ti fai il giro buffo dei cookie.

In pratica devi essere diretto col codice. Non cercare cose che ti lasciano presumere che ce ne siano altre. I bug nascono anche in questo modo. Le cose o ci sono oppure no. Questo per dirti che cercare un numero per capire se esiste una data puo' anche funzionare ma e' poco razionale.