PHP / HTML:如何通过单击表格的标题对数组进行排序?

时间:2018-03-29 17:42:31

标签: php html sorting multidimensional-array

我有一个PHP文件,我从MySQL数据填充表,使用数组格式来收集信息。我的桌子上有标题,我想在点击特定标题后对表格进行排序。我怎么能这样做?

这是我运行查询并将数据转换为数组。

$results=$db_link->query($query);

 while($row = $results->fetch_assoc()) {
    $project_data[$row[id]][id] = $row[id];
    $project_data[$row[id]][billable] = $row[billable];
    $project_data[$row[id]][pugh_project] = $row[pugh_project];
    $project_data[$row[id]][name] = $row[address2]." ".$row[name];
    $project_data[$row[id]][project_num] = $row[project_num];
    $project_data[$row[id]][budget] = $row[budget_hours_pm] + $row[budget_hours_eng] + $row[budget_hours_des] + $row[budget_hours_cad] + $row[budget_hours_tech];
 }

这是我使用HTML标题的方式。

 <div class="grid_12">

 <table class="contact_list_table">

    <tr class="contact_list_top_table">
        <td width="100px" style="color:white">Project #</a></td>
        <td style="color:white">Project Name</td>
        <td style="color:white">Budget Hours</td>
        <td style="color:white">Actual Hours</td>
        <td style="color:white">Estimate to Complete</td>
        <td style="color:white">Budget at Completion</td>
        <td style="color:white">Performance (%)</td>    
    </tr>

如何制作它以便我可以点击标题(例如项目名称),并使用正确的排序刷新页面?

1 个答案:

答案 0 :(得分:0)

如果要在PHP中完成所有操作,第一步是将列标题中的文本转换为链接,指定查询字符串中的列。

<td style="color:white">
    <a href="thispage.php?sort=projectname">Project Name</a>
</td>

然后在您的控制器中(或您生成该表格的任何脚本),您可以访问$_GET['sort']中单击的列,并且可以在ORDER BY中使用该列您查询中的。子句。

您无法将列名作为参数传递给预准备语句,因此您必须将其动态添加到SQL中。它是一个潜在的SQL注入漏洞,因此请确保在查询中使用它之前验证$_GET['sort']是否包含有效的列名。