Можно ли проверить, была ли вставлена повторяющаяся запись в течение последних 10 или 20 секунд?
На данный момент я делаю это:
INSERT INTO user_pointshistory (ptimestamp, player, points) VALUES (NOW(),'$playerid',$thisPoints)
То, что я хочу проверить, — это запись того же игрока с точно такими же точками, которые были вставлены в течение последних 10 секунд!
Можно ли это сделать?
————- РЕДАКТИРОВАТЬ —————
Я уже пробовал это, но без удачи? Должен ли я быть в состоянии сделать это?
$sql = "SELECT * FROM user_pointshistory WHERE player='111' AND points=10000 AND ptimestamp < DATE_SUB(NOW(), INTERVAL 10 SECOND)";
$result = mysqli_query($conn,$sql) or die(mysqli_error());
if($row = mysqli_fetch_array($result)){
echo 'GOT A RECORD';
} else {
echo 'READY FOR AN RECORD';
$sql = "INSERT INTO user_pointshistory (ptimestamp, player, points) VALUES (NOW(),'111',10000)";
mysqli_query($conn,$sql);
}
Надеемся на помощь и заранее спасибо 🙂
Следующее не будет работать, потому что $row
не определено, где вы бы лучше всего использовать mysqli_num_rows()
проверить, существует ли строка.
if($row = mysqli_fetch_array($result)){
Я бы заменил это на:
$numrows = mysqli_num_rows($result);
if($numrows > 0){
echo "GOT A RECORD";
}
в то время как вы сказали в комментариях, поворачивая <
в ptimestamp < DATE_SUB
для >
Я настоятельно поддерживаю ответ rjdown в том, что вы должны создать временную метку, чтобы вы могли сначала проверить базу данных с сохраненной временной меткой и новой временной меткой, сгенерированной перед отправкой новой строки.