无法使用此 mysql 语句更新分数


Can't get score to update with this mysql statement

我猜我只是有点生疏或其他什么,因为看起来这应该可以工作。 我在这里错过了什么吗...

这是我尝试使用的代码...

<?php 
echo dbConn();
$existing_time = mysql_result(mysql_query("SELECT p_time FROM scores WHERE p_uid=$uid"), 0);
$existing_category = mysql_result(mysql_query("SELECT p_cat FROM scores WHERE p_uid=$uid AND p_cat=$pieces"), 0);
if ($existing_category == "") {
mysql_query(
          "INSERT INTO scores VALUES (
          '',
          '$uid',
          '$pusername', 
          '$time',
          '$pieces'
          )");
} elseif ($existing_time <= $time) {
    echo "No Change!  Old Score Was Better (Lower)";
} elseif ($existing_time > $time) {
    mysql_query("UPDATE scores SET p_time = " . $time . " WHERE p_uid = " . $uid . " AND p_cat = " . $pieces . "");
};
?>

现在。。。 这是我正在尝试做的...

我正在从用户用户名和类别匹配的数据库中收集信息。 如果该用户的类别不存在,则会插入最新分数。 (这很多工作。

然后,如果类别确实存在,但旧分数更好,它什么都不做。 (这部分也有效)...

但是,我似乎无法做的是让它更新最后一个分数,如果当前分数更好(分数较低,因为这是基于时间的游戏。 它不会更新分数。

我正在尝试这样做:通过更新"分数"中的一行,其中用户名和类别同时匹配。

请注意...它说"碎片"的地方。这是一个类别。 它说"时间"的地方,这是一个分数。 分数以 00:00:00 返回,表示小时分钟和秒。

示例:(括号中是数据库行名)

id

(ID) = 仅按顺序排列的键 id

用户 ID (p_uid) = 123456789

用户名 (p_username) = 某个名称

分数 (p_time) = 00:01:03

类别 (p_cat) = 10

将更新语句更改为:

mysql_query("UPDATE scores SET p_time = '" . $time . "' WHERE p_uid = " . $uid . " AND p_cat = " . $pieces . "");

您在 $time 周围的更新语句中错过了引号。