我有问题

    <?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_*函数,以后将删除它们,您可以改为使用PDOMySQLi

关于php - MySQL获得前三名,并给予不同的奖励,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31090799/

10-13 07:14