Php 使用Tablesorter对动态SQL查询生成的表进行排序

Php 使用Tablesorter对动态SQL查询生成的表进行排序,php,jquery,tablesorter,Php,Jquery,Tablesorter,我目前正在一个小项目中工作,我有一个SQL数据库,其中包含一些我想在可排序表中显示的数据 我已经建立了一个显示表格的网站。我的问题是让tablesorter处理这些表 网站()只提供了一个单一表格的示例 以下是我的源代码,由PHP生成: 生成表的代码段如下所示: while ($row = mysqli_fetch_array($selectedtanks)) { $tank_id = $row[tank_id]; echo "<h2> ".tank_id2name($row[ta

我目前正在一个小项目中工作,我有一个SQL数据库,其中包含一些我想在可排序表中显示的数据

我已经建立了一个显示表格的网站。我的问题是让tablesorter处理这些表

网站()只提供了一个单一表格的示例

以下是我的源代码,由PHP生成:

生成表的代码段如下所示:

while ($row = mysqli_fetch_array($selectedtanks)) {
$tank_id = $row[tank_id];
echo "<h2> ".tank_id2name($row[tank_id])." </h2><br>";
echo 
    "<table class=\"tablesorter\" id=\"myTable\">
        <thead>
            <tr>
                <td>Nickname</td>
                <td>Damage</td>
                <td>Frags</td>
                <td>Spots</td>
                <td>Wins</td>
                <td>Battles</td>
            </tr>
        </thead>
    ";
$sql = "select * from user2rooms left join usertanks on user2rooms.account_id=usertanks.account_id where user2rooms.room_id='$room_id' AND usertanks.tank_id='$tank_id'";
$result = mysqli_query($db,$sql);
while ($row2 = mysqli_fetch_array($result)) {
    echo "<tbody>
        <tr>
        <td>".account_id2name($row2[account_id])."</td>
        <td>".round($row2[damage_dealt]/$row2[battles],2)."</td>
        <td>".round($row2[frags]/$row2[battles],2)."</td>
        <td>".round($row2[spotted]/$row2[battles],2)."</td>
        <td>".round($row2[wins]/$row2[battles],4)*100 ."%</td>
        <td>".$row2[battles]."</td>
        </tr>
        </tbody>
        </table>
    ";
}
}
while($row=mysqli\u fetch\u数组($selectedtanks)){
$tank_id=$row[tank_id];
echo“.tank_id 2名称($row[tank_id])”
; 回音 " 昵称 损坏 碎片 斑点 获胜 战斗 "; $sql=“select*from user2rooms left在user2rooms.account\u id=usertanks.account\u id其中user2rooms.room\u id='$room\u id'和usertanks.tank\u id='$tank\u id'; $result=mysqli_查询($db,$sql); while($row2=mysqli\u fetch\u数组($result)){ 回声“ “.account_id 2名称($row2[account_id])。” “.round($row2[造成的伤害]/$row2[战斗],2)。” .round($row2[frags]/$row2[battles],2)。” “.round($row2[斑点]/$row2[战斗],2)。” “.round($row2[获胜]/$row2[战斗],4)*100.” “$row2[战斗]。” "; } }
添加JS get的代码:

<head>
<script type="text/javascript" src="/jquery/jquery-latest.js"></script> 
<script type="text/javascript" src="/jquery/jquery.tablesorter.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
$(document).ready(function() 
{ 
    $(".tablesorter").css("border", "3px solid red");
} 
);
</script>

$(文档).ready(函数()
{ 
$(“.tablesorter”).css(“边框”,“3px实心红色”);
} 
);

生成的每个表都有相同的ID。不能有重复ID的元素-它们必须是唯一的。从表创建中删除
id=\\“myTable\”
(或使其唯一,以便根据循环迭代添加一个数字),并将表排序器初始化更改为
$(“.tablesorter”).tablesorter()。我更改了它,但它不起作用。它适用于硬编码的表,但不适用于phpEdit your post生成的包含初始化表排序器的javascript的表。现在包含它找到了解决方案:我必须在中使用,而不是生成的每个表都具有相同的ID。不能有重复ID的元素-它们必须是唯一的。从表创建中删除
id=\\“myTable\”
(或使其唯一,以便根据循环迭代添加一个数字),并将表排序器初始化更改为
$(“.tablesorter”).tablesorter()。我更改了它,但它不起作用。它适用于硬编码的表,但不适用于由phpEdit生成的表,该表包含初始化表排序器的javascript