Ciao a tutti,
ho necessità di creare un semplice contatore che all'aprirsi di una pagina incrementi il suo valore nel database.
Ho creato questa funzione:
Codice PHP:
function playCount($id, $cat) {
$sql = "SELECT ContatorePartite FROM games WHERE id=$id AND Categoria='$cat'";
$res = mysql_query($sql)
or $this->Error("query non valida: $sql");
$res = mysql_fetch_array($res);
$res = $res["0"];
$res++;
$sql2 = "UPDATE games SET ContatorePartite = $res WHERE id=$id AND Categoria='$cat'";
mysql_query($sql2)
or $this->Error("query non valida: $sql2");
}
In pratica fa una select del numero di visite attuali, prende il valore, ci somma 1 e poi fa l'update del nuovo valore.
Ho tra l'altro scoperto che mi sono un po' complicato la vita, scoprendo che potevo semplicemente fare così (credo):
Codice PHP:
function playCount($id, $cat) {
$res = mysql_query("UPDATE games SET ContatoreVisite = ContatoreVisite+ 1 WHERE id=$id AND Categoria='$cat'");
}
La funzione viene poi chiamata semplicemente all'interno della pagina.
Il problema è che sembra che la query venga richiamata all'infinito, facendo incrementare il campo nel Db all'infinito senza che la pagina venga ricaricata!
La chiamata alla funzione non è ovviamente in nessun ciclo che potrebbe causarne la ripetizione, ed ho anche provato a metterla direttamente nel codice della pagina.
Grazie in anticipo!