用于保存分数的 PHP SQL 数据库


PHP SQL Database for saving scores

我有一个分数数据库设置,每个分数都是满分 100 分,我需要能够保存多个值并输出它,以便用户可以看到它。但是我不知道如何保存分数;我对PHP的了解有限,我只知道如何保存一个值。

提前致谢

在这种情况下,

一个好的做法是有 2 个表:一个用于名称,一个用于分数。然后将它们与联接表关联。这样,您的数据库就被"规范化"了,并且每当"John"多次输入他的分数"95"时,就不会有重复的数据。 您的两个表需要一个 ID 字段(ID、名称)和 (ID、Score),第三个表称为"Names_Scores"(Name_ID、Score_ID)。 然后使用联接查询来匹配具有哪个名称 ID 具有哪个分数 ID,并在用户登录时为用户列出它们。

使用 PHP,您需要与数据库建立连接,然后对您想要的数据发起 SQL(或 MySQL)调用,并将检索到的数据放入可以在其他地方使用的变量/数组中,然后关闭连接。

例:

<?php
$con = mysql_connect("[hostname]", "[username]", "[password]");
mysql_select_db("db_name") or die(mysql_error());
$result = mysql_query("SELECT Users.UID, Users.Name, Scores.Score FROM Users, Scores WHERE Users.UID = Scores.UID GROUP BY Users.UID, Scores.Score") or die(mysql_error());
echo $result;
mysql_close($con);
?>

根据您的评论,我认为您可以使用这样的事情:

 mysql_query("INSERT INTO scores(name, score) VALUES ('John', 100),('John', 75),('Bob', 68)");

 mysql_query("INSERT INTO scores(name, score) VALUES ('John', 100)");
 mysql_query("INSERT INTO scores(name, score) VALUES ('John', 75)");
 mysql_query("INSERT INTO scores(name, score) VALUES ('Bob', 68)");

如果你想要一个特定的用户分数,你可以这样做:

 mysql_query("SELECT score FROM scores WHERE name='John'");

如果需要用户列表:

 mysql_query("SELECT name FROM scores GROUP BY name");