<?php
/*farei la tabella "votato"
id int(6) autoincrement pronaykey
tempo int(13)
ip varchar(25)
*/
//qui non so come prelevi la votazione, faccio finta che siano due post
$voto=$_POST['voto'];
$gioco=$_POST['nome_gioco'];
// prelevi l'ip di chi vota
$ip=$_SERVER['HTTP_REFERER'];
//e il momento del voto
$adesso=time();
//fai la select sulla tabella votato
$q=mysql_query("SELECT * FROM votato WHERE ip='$ip'");
//tre casi: l'ip non ha mai votato, ha votato e sono trascorse + di 24 ore, ha votatao e NON sono trascorse 24 ore
$permesso="";
if(mysql_num_rows($q) == 0){//l'ip non esiste
$permesso="SI";//autorizzo a votare e inserisco in tabella
$qi=mysql_query("INSERT INTO votato(tempo, ip) VALUES($adesso,'$ip')");
}else{//esiste e quindi controllo quando ha votato
$riga=mysql_fetch_array($q);
$ultimo_voto=$riga['tempo'];
//calcolo ore
$trascorse=($adesso-$ultimo_voto)/3600;//trasformo il tempo in ore
if($trascorse > 24){//trascorse più di 24 ore
$permesso="SI";
//uppo il record per qull'ip
$qu=mysql_query("UPDATE votato SET tempo= $adesso WHERE ip='$ip'");
}else{//trascorse meno di 24 ore
$permesso="NO";
}
}
/*poi modificherei la tabella voti dove hai i giochi aggiungendo/modificando i campi
...nome_gioco (varchar), votazione (int), num_voti (int), media (float)
provando a fare una cosa del genere
*/
if($permesso="SI"){//l'utente puo votare
//verifico se esiste già il record
$q=mysql_query("SELECT * FROM voti WHERE nome_gioco='$gioco'");
if(mysql_num_rows($q)){//il record non esiste (metto i ... se hai altri campi)
//la media in questo caso è ugguale al voto = voto/1=voto
$qi=mysql_query("INSERT INTO voti(...,nome_gioco, votazione, num_voti, media,...) VALUES(...,'$gioco',$voto, 1, $voto,...)");
}else{//il record esiste di gia quindi lo uppi
//faccio i calcoli, ma forse si possono fare direttamente nella query
$riga=mysql_fetch_array($q);
$somma_voti=$riga['votazione']+$voto;
$numero = $riga['num_voti']+1;
$media=$somma_voti/$numero;
$qu=mysql_query("UPDATE voti SET votazione=$somma_voti, num_voti=$numero, media=$media WHERE nome_gioco='$gioco'");
}
}else{
echo "non sono passate ancora 24 ore dall'ultimo tuo voto";
}
//.......
?>