Salve a tutti.
Sto aggiornando un sito vecchio come il cucco e sto riscontrando un problema che non capisco nella tabella delle NOTIZIE.
La tabella è strutturata come segue.
codice:
+------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| data | timestamp | NO | | 0000-00-00 00:00:00 | |
| titolo | text | YES | | NULL | |
| corpo | text | YES | | NULL | |
| link | text | YES | | NULL | |
| foto | text | YES | | NULL | |
| video | text | YES | | NULL | |
| visibilita | tinyint(1) | YES | | 0 | |
| autore | varchar(30) | YES | | NULL | |
| evidenza | tinyint(1) | YES | | 0 | |
| counter | int(11) | YES | | 0 | |
+------------+-------------+------+-----+---------------------+----------------+
Nel campo DATA vado ad inserire (dal pannello di amministrazione) la data di pubblicazione della notizia come timestamp.
Nel front-end la visualizzo invece in un formato più leggibile.
Nell'ammodernamento del sito, però, ho inserito la seguente query che mi aggiorna la colonna COUNTER e mi permette di vedere quante visualizzazioni ha ogni singola news.
Nella pagina del front-end, ho il seguente codice PHP per eseguire il conteggio delle visualizzazioni.
Codice PHP:
$add_visita = "
UPDATE news
SET counter = counter + 1
WHERE id = $id_news
";
mysql_query($add_visita);
Ebbene, oggi mi sono accorto che ogni volta che viene visualizzata una notizia, si auto-aggiorna anche il campo data, con il timestamp del momento in cui viene visualizzata la notizia.
Prima di accorgermi di questa anomalia, il campo data aveva il CURRENT_TIMESTAMP come default, ed è stata la prima modifica che ho eseguito.
In locale (MySQL 5.x) è bastato fare quello, in remoto (MySQL 4.x) no: il problema è sempre lì pronto per verificarsi.
Non riesco a capire perché.
Qualcuno sa spiegarmelo?