【问题标题】:How to change №10 result in php array?如何更改 №10 结果在 php 数组中?
【发布时间】:2018-02-06 15:27:12
【问题描述】:

我必须创建一个前 10 名的排行榜。我设法在游戏丢失后使用ajax 将数据插入数据库,并在游戏丢失后获取该数据。但我无法更改排行榜中的最后一个(№ 10)位置。如果结果不在前 10 中,则更改该结果而不是 № 10,并且位置应该是他在所有结果中的位置。

这是从数据库中获取数据:

<?php
require("db_connection.php");
$id = 0;
$sql = "SELECT * FROM Leaderboard ORDER BY score DESC LIMIT 10";
$result = $conn->query($sql);
$datas = array();
if ($result->num_rows > 0) {
    while ($row = $result-> fetch_assoc()) {
        $datas[] = $row;
        $id = $id + 1;
        echo "<tr><td>" . $id . "</td><td>" . $row['name'] . "</td><td>" . $row['score'] . "</td></tr>";
    }
}
?>

这是 JS:

$.post($("#myForm").attr("action"), $("input.info").serializeArray(), function(info) {
    console.log(info);
});
$("#Datas").load('./php/get.php');

这是 HTML:

<div id="Leaderboard">
    <table id="Datas">
        <tr>
            <th>id</th>
            <th>Name</th>
            <th>Score</th>
        </tr>
    </table>
</div>

【问题讨论】:

    标签: php html sql ajax


    【解决方案1】:

    您应该在第一个请求结束后重新加载数据:

     $.post($("#myForm").attr("action"), $("input.info").serializeArray(), function(info) {
        console.log(info);
        $("#Datas").load('./php/get.php');
      });
    

    【讨论】:

      【解决方案2】:

      您可以使用 PHP array_reverse 函数来反转数组的顺序(假设它已经排名 1-10. 尝试将 $result 传递给 array_reverse 然后输出结果

       $reversedResult = array_reverse($result);
      

      在你的 while 循环中使用 $reversedResult 而不是 $result 应该可以工作。

      【讨论】:

      • 问题是,我无法更改第 10 个结果。而且我只得到 10 个结果,这意味着我无法在所有结果的数组中获得结果的 id。
      • 对不起,我误会了。您能否确认数据库中至少有 10 条记录并且没有损坏/错误记录(例如缺少字段)?
      • 是的。我可以确认。
      猜你喜欢
      • 1970-01-01
      • 2020-04-20
      • 2015-09-03
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      相关资源
      最近更新 更多