Ciao a tutti,
sto terminando il mio primo sito che prestissimo vi presenterò nella sezione apposita.
Prima di farlo devo però risolvere un noioso problema che mi assilla letteralmente da settimane, da quando il mio sito era ancora lontano dal vedere la luce fino ad ora che siamo al traguardo.
Il problema è banale e vi farà ridere a crepapelle, ma tant'è...
Tengo conto nel mio database del numero di visite di una data pagina. Nell'azione executeShow che richiama la risorsa selezionata, effettuo un semplice incremento di questa variabile [un bigint(20)] e salvo il record prima di farlo visualizzare all'utente.
Il dramma è che questo incremento spesso è sballato
Infatti ogni prima visita della pagina produce un valore del campo 'views' >= 3 (in genere 3 o 4), mentre tutte le visite successive danno un incremento corretto, a parte rari casi in cui il baco riemerge.
Le ho provate tutte, ad esempio:
$views++
++$views
$views+=1
$views = $views + 1
if (!$already_read) {
//TODO bug
$this->news->num_views++;
$this->news->save();
if ($this->getUser()->isAuthenticated()) {
$v = new View();
$v->news_id = $this->news->id;
$v->sf_guard_user_id = $this->getUser()->getGuardUser()->id;
$v->save();
}
}
non so più che pesci prendere, spero riusciate ad aiutarmi, sembra così assurdo...
P.S. la stampa del numero di visite è corretta durante la prima visualizzazione, eppure il record nel database è sbagliato, infatti l'errore si evidenzia dal secondo accesso alla pagina in poi :bho: