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($results, MYSQL_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.