使用PHP和MySQL自动更新基于总标记的用户位置

时间:2017-12-10 21:06:20

标签: php mysql

我尝试使用此查询根据用户位置更新表格

$default='0';

mysql_select_db($database_catchapp, $catchapp);
$updateSQL = sprintf("UPDATE competitors SET position= $default= ($default+1) ORDER BY score DESC" );
$Result= mysql_query($updateSQL, $db) or die(mysql_error());

但是当我执行它时,从第一个记录到最后一个记录更新位置为0。 我期待的是它应该根据总分从1更新到最后一个记录

2 个答案:

答案 0 :(得分:0)

这是您插入数据库的信息,这是您使用数据库计算和检索的信息。

每个参赛者都已经在数据库中输入了分数,如果您尝试保存他们的位置,那么每次分数改变时都需要重新计算并重新保存。

无论如何,这是毫无意义的,因为按位置列出它们只是对数据进行排序的一种方式,而排序数据是计算机擅长的。

如果您运行SELECT * FROM competitors ORDER BY score DESC,您将按排名获得结果。如果您还需要一个运行列,请尝试以下操作:

SET @rank = 0; SELECT *, (SELECT @rank:=@rank + 1) AS rank FROM competitors ORDER BY score DESC

答案 1 :(得分:0)

$default=0;
mysql_select_db($database_catchapp, $catchapp);
$default= ($default+1) ;
$updateSQL = sprintf("UPDATE competitors SET position= $default ORDER BY score DESC" );

声明为字符串。

这样做:

{{1}}