我必须创建一个排名前十的排行榜。我设法在游戏输了后用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>
发布于 2018-02-06 15:30:26
您应该在第一个请求结束后重新加载数据:
$.post($("#myForm").attr("action"), $("input.info").serializeArray(), function(info) {
console.log(info);
$("#Datas").load('./php/get.php');
});
发布于 2018-02-06 15:45:26
你可以使用PHP的array_reverse函数来颠倒数组的顺序(假设它已经排在了1-10位)。尝试将$result传递给array_reverse,然后输出结果
$reversedResult = array_reverse($result);
在while循环中使用$reversedResult而不是$result应该是可行的。
https://stackoverflow.com/questions/48646472
复制相似问题