我有问题
<?php
include "base.php";
$result = mysql_query("SELECT * FROM users WHERE Score > 0 ORDER BY Score DESC LIMIT 3");
while ($row = mysql_fetch_array($result))
{
$name = $row['Name'];
echo $name;
echo "<br>";
}
?>
如您所见,使用上面的代码,我可以打印出前3名的姓名。
如果我将其添加到循环中:
mysql_query("UPDATE users SET Balance = Balance + $reward WHERE Name = '$name'");
他们将获得相同的奖励。
所以我想我需要给他们起名字,给他们不同的奖励。
$reward1 = 1000;
$reward2 = 500;
$reward3 = 100;
我如何获得他们的名字?或有什么方法可以完成这项工作?
最佳答案
我建议您创建一个奖励数组,而不是变量,并分别在while循环中调用它,请参见以下示例:
$rewards = array(
1000,
500,
100
);
$rewardIndex = 0;
while ($row = mysql_fetch_array($result))
{
mysql_query("UPDATE users SET Balance = Balance + $rewards[$rewardIndex] WHERE Name = '$name'");
$rewardIndex++;
}
注意:不建议使用
mysql_*
函数,以后将删除它们,您可以改为使用PDO或MySQLi关于php - MySQL获得前三名,并给予不同的奖励,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31090799/