Salve a tutti, sono sempre io, con il mio script per le missioni, dato che ho vistoche qui siete molto preparati, vi pongo un'altro quesito, essendo da poco entrato nel mondo di PHP e MYSQL.
Il codice seguente non fa altro che dare oro a un giocatore in base ai minuti di missione scelti, il problema è che il codice non mostra errori, ma non compie neanchei l suo compito.
Qui vi è la funzione che calcola i minuti scelti:
Codice PHP:
function min_missione($id_giocatore)
{
$sql = "SELECT TIMEDIFF (fine, inizio) FROM missioni WHERE id_giocatore = '$id_giocatore'";
$min_missione = mysql_query($sql);
$row = mysql_fetch_array ($min_missione);
return $row[0];
}
$min = explode(':', min_missione($_SESSION['id']));
$minuti = $min[1];
In questo modo la variabile $minuti contine i minuti scelti, e questo ho constata che attraverso un var_dump(), funziona e contiene esattamente i minuti scelti.
Ora il problema è nel seguente pezzo di codice, non so, forse ho sbagliato come logica, e non mi inserisce correttamente l'oro, forse ho sbagliato la funziona rand() che fa in modo che in base ai minuti scelti si aumenti l'oro di un valore preso a caso fra due valori espressi nella funzione rand().
Codice PHP:
function inserisci_10 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(10,125) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
function inserisci_20 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(70,150) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
function inserisci_30 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(100,350) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
function inserisci_40 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(125,550) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
function inserisci_50 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(300,700) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
function inserisci_60 ()
{
$sql = "UPDATE utenti SET oro = ".$_SESSION['oro']." + rand(450,1200) WHERE id = ".$_SESSION['id']." ";
$risultato = mysql_query($sql);
}
var_dump ($minuti);
/* Oro in base ai minuti di missione scelti */
if ($minuti == 10)
{
inserisci_10();
}
elseif ($minuti == 20)
{
inserisci_20();
}
elseif ($minuti == 30)
{
inserisci_30();
}
elseif ($minuti == 40)
{
inserisci_40();
}
elseif ($minuti == 50)
{
inserisci_50();
}
elseif ($minuti == 60)
{
inserisci_60();
}
else
{
echo"<div align='center'>Non hai eseguito missioni!</div>";
}
/* ---------------------------------*/
?>
Qualcuno ha qualche idea, e sa dirmi cosa ho sbagliato, magari fornendomi una soluzione ?