Я работаю с онлайн-игрой для Android с php на стороне сервера. Теперь я застрял в одном месте.
Я хочу, чтобы 2 пользователя играли в игру, когда оба находятся в сети и подключаются к одной и той же игре, при подключении я вызываю URL-адрес php, который обновляет время запуска обоих пользователей в одной таблице на основе их адресов электронной почты, как показано ниже. в моем php-коде для этого -
$stmt = $conn->prepare("update user_game_status
set game_score=?,time=?
where emailid=?
and game_id=?
and gstatus=1
and gplay_code=?");
$stmt->bind_param("sssss", $game_score,$time,$email,$game_id,$gplay_code);
$stmt->execute();
$rows=mysqli_affected_rows($conn);
$stmt->close();
Но проблема, с которой я столкнулся, заключается в том, что время обновляется только для 1 пользователя, что означает, что тот, кто первым вошел в игру, его время обновляется, а второй пользователь, присоединившийся к его времени, не обновляется. URL-адрес вызывается для обоих пользователей одновременно.
Может ли кто-нибудь показать мне путь, который мне не хватает. Спасибо
я думаю, что задаю вопрос с правильным объяснением
Этот код обновит только одну запись о людях. Вы называете это один раз для каждого игрока?
@RiggsFolly да, из обоих пользовательских приложений индивидуально этот URL будет вызываться, но URL будет вызываться одновременно
В то же время не должно быть проблемой. MySQL позаботится обо всем этом за вас. Вы уверены, что этот код был вызван обоими пользователями? Вы видите 2 записи в журнале apache, в которых говорится, что он был вызван дважды
извините за вопрос, но где я могу увидеть журнал apache, я работаю на удаленном сервере в phpmyadmin
Надеюсь либо по ssh, либо из админки
хорошо, позволь мне проверить и подтвердить, спасибо '
не получается войти в мой phpmyadmin
phpMyAdmin - это инструмент, написанный на PHP для поддержки баз данных MySQL. Он ничего не регистрирует. Вам нужно уточнить у своего хоста, где они размещают файлы журналов Apache и PHP. При разработке вам обязательно нужно будет посмотреть файлы журналов PHP.
Как выглядит таблица user_game_status
?
Вы можете использовать автоматическое обновление для datetime
и timestamp
, поэтому вам не нужно включать это в свой запрос. Если кто-нибудь изменит эту строку, время обновится автоматически. Подробнее: https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html
Пример:
CREATE TABLE t1 (
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
привет, согласно моему приложению, когда оба пользователя присоединяются к одной игре, то вызывается только мой URL-адрес, и необходимо обновить время начала игры обоих пользователей на основе их emailid в той же таблице
Но теперь, что происходит, обновляется только 1 запись пользователя, в зависимости от того, что mysql получает первым.
пожалуйста, дайте мне знать причину голосования -1