Grazie della risposta, ho appena provato e funziona, non sapevo che si potessero inserire altre condizioni in un unica query per questo mi sono complicato la vita creando funzioni e funzioni..
Solo che il problema adesso rimane quello dei buchi.. ho cambiato l'intera funzione che uso per richiamare e salvare le frasi, solo che nei messaggi di successo certe volte non mi compare l'ID della frase assegnata e di conseguenza, vado a controllare sul db e il campo frase risulta vuoto.. da cosa potrebbe essere causato? Il codice che uso è questo
codice:
<?php function assegnaFrase($categoria,$giocatore) {
$aumento = ($config[4] + mt_rand(1, 10));
$randomau = rand($config[4],$aumento);
$minimo = dammiPunteggioGiocatore($giocatore);
$max = ($minimo + $randomau);
$sql = "SELECT * FROM frasi".$categoria." WHERE percentuale BETWEEN ".$minimo." AND ".$max." AND DATEDIFF(CURDATE(), lastused) > 2";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
$frasehtml = htmlspecialchars($row['frase']);
$aggiorna = "UPDATE oroscopi SET ".$categoria." = '".$frasehtml."' WHERE id = '".$giocatore."'";//SQL che aggiorna la frase del $giocatore della $categoria scelta.
mysql_query($aggiorna);
mysql_query("SET CHARACTER SET utf8 ") or die ("errore codifica:".mysql_error()."");//Query x CHARACTER SET
$lol = mysql_query("UPDATE frasi".$categoria." SET lastused = CURDATE() WHERE id = '".$row['id']."'")or die("Errore nel salvataggio lastused " . mysql_error());
if($aggiorna == TRUE)
{
msgErrore(3,"<br />FRASE ".$categoria." GIOCATORE ".getNamePlayer($giocatore)." salvato con successo con la frase ID ".$row['id']."<br />");
}
else if($aggiorna == FALSE)
{
msgErrore(1,"<br />FRASE GIOCATORE: ".getNamePlayer($giocatore)." ERRORE: ".mysql_error()."<br />");
}
if($lol == true)
{
msgErrore(3,"<br />lastused aggiornata per la frase id ".$row['id']."<br />");
}
else if($aggiorna == FALSE)
{
msgErrore(1,"<br />lastused non aggiornato ERRORE: ".mysql_error()."<br />");
}
}
?>