从Javascript更改给定玩家ID的数据库条目



我正在写一个javascript游戏,有三个不同的级别,可以从index.html页面的html形式访问。我也有一个列表的球员存储在数据库中,我需要:

  1. 阻止玩家进入他们已经完成的关卡,并且
  2. 阻止玩家开始一个新的关卡直到所有其他玩家完成当前关卡

我认为实现这一点的方法是创建两个名为"level_1"的数据库列。和";level_2"在关卡开始时设置为0,并在关卡完成后更改为1,如下所示:

*beginning of game
player_ID   level_1  level_2
1           0            0
2           0            0
3           0            0
*level one is completed
player_ID   level_1  level_2
1           1            0
2           1            0
3           1            0
*level two is completed
player_ID   level_1  level_2
1           1            1
2           1            1
3           1            1

当列"level_1"我将禁用html表单中的1级选项和"解锁"。第2级选项。这同样适用于第二层和第三层。

然而,我不确定如何使用javascript和php做到这一点。我有一个记录玩家移动的javascript计数器。当移动到零时,关卡结束,并显示最终分数:

if (moves==0){
document.getElementById('endgame_screen').style.display = "flex";
document.getElementById('score').innerHTML = points
}

我还将关卡和id表单选项存储在同一个javascript文件中:

var level = sessionStorage.getItem('level');
var id = sessionStorage.getItem('id');

我一直在努力做的是从游戏javascript文件中打开php文件,并根据级别和id更新数据库条目。我知道最好的方法是像这样获取php文件:

fetch("levels.php", {method="POST"}

,但后来我卡住了,因为我不是很熟悉SQL和PHP语法,我不知道如何通过PHP发送级别和id数据,也不知道如何更新数据库。我也不知道如何禁用另一个html页面上的表单选择(我的猜测是触发另一个PHP文件时,表单打开检查是否有任何零在两个数据库列,并相应地更新表单)。

任何帮助都是感激的!

你必须用PHP编写至少一个最小的脚本来与数据库交互。

最小值为:

<?php
$con = mysqli_connect("localhost","user","password","dbname");
mysqli_query($con, "UPDATE table SET level=1 WHERE user='johndoe'");
?>

但这当然是最小的,从这里你可以玩你的变量,你可以处理返回值,等等。还要注意我们的SQL注入。

你必须学习一点MySQL才能做到这一点。这里有几个简单的例子可以帮助你:

从数据库中检索信息:

SELECT * FROM table_name; 

https://www.w3schools.com/sql/sql_select.asp

在数据库中创建一个新记录:

INSERT INTO table_name VALUES (value1, value2, value3, ...);

https://www.w3schools.com/sql/sql_insert.asp

更新数据库中的记录:

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 

https://www.w3schools.com/sql/sql_update.asp

删除数据库中的一条记录:

DELETE FROM table_name WHERE condition;

https://www.w3schools.com/sql/sql_delete.asp

最新更新