【问题标题】:Sorting Columns PHP, football Stats排序列 PHP,足球统计
【发布时间】:2016-06-10 01:14:01
【问题描述】:

这是一个有统计数据的足球联赛。现在统计数据就在那里。我们希望让玩家可以选择对每个统计数据进行排序,以查看每个部门中谁是最高的和最低的。我不知道如何让每个表排序(降序,升序)。我一直在努力解决这个问题,也许有人可以提供帮助。

    <h2>Passing Leaders</h2>
        <table class="style-std" id="passing-leaders-table">
    <thead>
        <tr>
            <th>Player</th>
            <th>&#35;</th>
            <th>Team</th>
            <th>Com</th>
            <th>Att</th>
            <th>Yd</th>
            <th>Td</th>
            <th>Int</th>
            <th>1p</th>
            <th>2p</th>
            <th>Dr</th>
            <th>Df</th>
            <th>Sk</th>
            <th>QBR</th>
        </tr>
    </thead>
    <tbody>

    <? foreach ($stats['passing'] as $row) : ?>
       <tr>
           <td><?=$row['name'] ?></td>
           <td><?=$row['number'] ?></td>
           <td><?=$row['team'] ?></td>
           <td><?=$row['completion'] ?></td>
           <td><?=$row['attempt'] ?></td>
           <td><?=$row['yard'] ?></td>
           <td><?=$row['touchdown'] ?></td>
           <td><?=$row['interception'] ?></td>
           <td><?=$row['1pat'] ?></td>
           <td><?=$row['2pat'] ?></td>
           <td><?=$row['drop'] ?></td>
           <td><?=$row['deflection'] ?></td>
           <td><?=$row['sack'] ?></td>
           <td><?=passer_rating($row) ?></td>
        </tr>
    <? endforeach ?>
    </tbody>

【问题讨论】:

    标签: php css


    【解决方案1】:

    有两种方法可以做到这一点:

    1. 取决于客户端 (Javascript)
    2. 取决于服务器

    您拥有的数据量,以及您是否已经拥有驱动显示的分页和服务器端代码很重要。

    如果您使用 javascript 界面,那么您的代码会有所不同 --- 您将读取原始数据并将其加载到表对象中。有许多现有的解决方案使用不同的 javascript 框架和库。许多拥有简单应用程序的人从 jquery 开始并使用其中一个插件来处理表格数据。这只是您可以使用的大量 jquery 插件之一:https://datatables.net/

    为了达到最佳效果,您需要加载所有数据,并且它必须是一个足够小的数据集,您可以在不杀死典型浏览器实例的情况下执行此操作。

    后端/服务器端方法通常基于传递 sort= 参数,该参数通过单击列来执行。

     <th><a href=".?sort=player">Player</a></th>
    

    如果 $_GET 参数被传递,您可以更改脚本以使用它。

    您的查询代码需要重写,以便在提供排序参数的情况下,查询在您的 SQL 语句中包含适当的 ORDER BY,以便您获得所需的排序。

    同样,框架、组件和其他可重复使用的部分将为您节省大量时间和麻烦。

    您提出了一般性问题,而我提供了一般性答案。我应该指出,由于 passer_rating() 是一个计算列,除非您可以将计算转换为 SQL 本身,否则您将无法在后端对其进行排序。否则,您应该能够使用任何一种方法来完成此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      相关资源
      最近更新 更多