Salve a tutti!
Spero di non disturbare e ringrazio in anticipo chi avrà la pazienza e la voglia di aiutarmi con il mio problema. Premetto che non sono esattamente un esperta in programmazione, anzi, il termine migliore che potrei usare per me stessa è autodidatta, ma frana probabilmente è quello più corretto.
In questi giorni sto cercando di sviluppare una piccola pagina che vada ad aggiornarmi una variabile nel database a seconda del suo stesso valore ed il tempo trascorso dall'ultimo aggiornamento. Posto il codice e mi spiego meglio.
Codice:
<?
$result = gdrcd_query("SELECT ultimomana, (DATE_ADD(ultimomana, INTERVAL 3 MINUTE) < NOW()) AS tempo,DATE_ADD(ultimomana, INTERVAL 3 MINUTE) AS time FROM mana WHERE nome = '".$_SESSION['login']."' LIMIT 1", 'result');
$record_exists = gdrcd_query($result, 'num_rows');
$record = gdrcd_query($result, 'fetch');
$tempo_ok=$record['tempo'];
$ultimomana=$record['ultimomana'];
$time=$record['time'];
$result = gdrcd_query("SELECT * FROM mana WHERE nome = '".$_SESSION['login']."' LIMIT 1", 'result');
$record_exists = gdrcd_query($result, 'num_rows');
$record = gdrcd_query($result, 'fetch');
$mana=$record['mana'];
$maxmana=$record['maxmana'];
if ($tempo_ok ==1) {
if (intval($maxmana) <= intval($mana)) {
$query = "UPDATE mana SET ultimomana = NOW() WHERE nome = '".$_SESSION['login']."' LIMIT 1";
$result = gdrcd_query($query,'result');
} else {
$recupero=120;
$tempotrascorso = strtotime($ultimomana);
$inttemporale= $recupero+$tempotrascorso;
while (($inttemporale < time())&&(intval($mana) <= intval($maxmana))) {
$query = "UPDATE mana SET mana = mana+1 WHERE nome = '".$_SESSION['login']."' LIMIT 1";
$result = gdrcd_query($query,'result');
$mana=$mana+1;
$inttemporale=$intemporale+120;
}
$query = "UPDATE mana SET ultimomana = NOW() WHERE nome = '".$_SESSION['login']."' LIMIT 1";
$result = gdrcd_query($query,'result');
}
} else {
}
?>
Ogni volta che mi si riaggiorna il sito, questa pagina avrebbe il compito di controllare ad ogni utente online quanto mana possiede, e se tale valore è inferiore alla variabile maxmana a lui assegnata, aggiornare la variabile mana di un punto. Nel caso in cui un utente al momento del logout aveva meno mana del suo massimale invece, incrementare la variabile mana di un punto per ogni tre minuti che questi è stato assente dal sito.
Ora... questo in pratica è quello che sogno di notte di riuscire a fargli fare, mentre materialmente... sono riuscita semplicemente a fargli incrementare la variabile mana sino al maxmana (e anche male visto che me la supera di un punto)... quindi... ho davvero bisogno di un aiutino. >.<