尝试使用下面的代码重复更新一行的3个单元格。on副本的第一部分工作得很好,检查用户是否存在,并且只在分数更高时更新,但是,第二两个语句更新无论分数是否更高,它们似乎没有包含在条件if语句中。
// This query checks if a user exists and either enters or updates based on high score
$date_entered = date('Y-m-d h:i:s');
$query = mysql_query("INSERT INTO `hkhwa_entries` (player_id, name, week_no, score, date_entered, game_time)
VALUES ('$player_id', '$name', '$week_no', '$score', '$date_entered', '$gametime')
ON DUPLICATE KEY UPDATE score = if(VALUES(score) > score, VALUES(score), score), date_entered = '$date_entered', game_time = '$gametime'");
我试过下面的代码,但它只是打破了查询完全。
任何帮助都非常感谢。
$query = mysql_query("INSERT INTO `entries` (player_id, name, week_no, score, date_entered, game_time)
VALUES ('$player_id', '$name', '$week_no', '$score', '$date_entered', '$game_time')
ON DUPLICATE KEY UPDATE score = if(VALUES(score) > score, VALUES(score), score),
date_entered = if(VALUES(score) > score, VALUES(score), score, '$date_entered'),
game_time = if(VALUES(score) > score, '$game_time'");
您还必须为其他两个赋值指定IF:
INSERT INTO hkhwa_entries
(player_id, name, week_no, score, date_entered, game_time)
VALUES
('$player_id', '$name', '$week_no', '$score', '$date_entered', '$gametime')
ON DUPLICATE KEY UPDATE
score = IF(VALUES(score) > score, VALUES(score), score),
date_entered = IF(VALUES(score) > score, VALUES(date_entered), date_entered),
game_time = IF(VALUES(score) > score, VALUES(game_time), game_time)
您提供的第二个版本有语法错误
@user1903887试试这个
$query = mysql_query("INSERT INTO `hkhwa_entries` (player_id, name, week_no, score, date_entered, game_time)
VALUES ('$player_id', '$name', '$week_no', '$score', '$date_entered', '$gametime')
ON DUPLICATE KEY UPDATE score = if(VALUES(score) > '$score', VALUES(score),'$score'),
date_entered = if(VALUES(score) > '$score', VALUES(date_entered),'$date_entered'),
game_time = IF(VALUES(score) > '$score', VALUES(game_time), '$gametime');
date_entered = if(VALUES(score)>score, VALUES(score), score, '$date_entered')
在date_entered
中使用额外的score,