Ok, me equivoqué pues. Puede que una solución sea la de hacer un query a ver si encuentra la IP en la bbdd y si existe, despues comprobar la fecha (formato DATETIME) y restar con la fecha actual
Código PHP:
<?php
/*
* Google: "restar datetime php" -> 5º Resultado:
* http://www.php-hispano.net/foros/PHP/30194
*/
function horas($t1, $t2) {
// calcula la diferencia en horas entre dos marcas de tiempo (aaaa-mm-dd hh:mm:ss)
// t1 - marca inicial, t2 - marca final
// primero calculamos la diferencia en días
$fecha1 = explode(" ", $t1);
$fecha2 = explode(" ", $t2);
$fecha_inicial = $fecha1[0];
$fecha_final = $fecha2[0];
$s = (strtotime($fecha_final) - strtotime($fecha_inicial)) / 86400;
// ahora la diferencia en horas
$tiempo_inicial = explode(":", $fecha1[1]);
$tiempo_final = explode(":", $fecha2[1]);
$hora_final = $tiempo_final[0];
$hora_inicial = $tiempo_inicial[0];
// Se resta uno si tenemos menos de 24 horas de diferencia
if($hora_final >= $hora_inicial) {
$h = $hora_final - $hora_inicial;
} else {
$h = (24 - $hora_inicial) + $hora_final;
$s = $s - 1;
}
$t = 24 * $s + $h;
return $t;
}
$ip = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT fechaclick FROM clicks WHERE ip='".$ip."';");
if(mysql_num_rows() > 0) {
$row = mysql_fetch_assoc($result);
if(horas($row["fechaclick"], date("Y-m-d h:i:s")) > 24) {
mysql_query("DELETE FROM clicks WHERE ip='".$ip."';"); // Esto es por si quieres borrar el registro antiguo. (y espero que se haga, si no, habrá conflicto y tendrás que implementar un método que complemente a este para que escoja el registro con la fecha más actual)
mysql_query("INSERT...");
} else {
echo "Ya has hecho click en menos de 24 horas";
}
} else {
mysql_query("INSERT .....");
}
?>
Me he tomado la libertad de cambiarte los nombres de los campos de la tabla y el nombre de la tabla, pero supongo, sabrás a que se refiere cada uno.
Con ese código, creo que tu duda está resuelta. Espero que sepas apreciar el código hecho.
Un saludo!