我知道这是很基本的事情,但是Google搜索并没有显示单击th链接后如何对行进行重新排序。
th
我有这个:
<table border="1"> <tr> <th>Type:</th> <th>Description:</th> <th>Recorded Date:</th> <th>Added Date:</th> </tr> <?php while($row = mysql_fetch_array($result)){ ?> <tr> <td><?php echo $row['type'] ?></td> <td><?php echo $row['description'] ?></td> <td><?php echo $row['recorded_date'] ?></td> <td><?php echo $row['added_date'] ?></td> </tr> <br /> <?php } mysql_close(); ?> </table>
我需要能够按type字母顺序单击并排序,然后单击Recorded Date或Added Date并按日期排序。我看到我需要MySQL查询来执行此操作,但是是否将它们设置为带有a href标签的条件查询?
type
Recorded Date
Added Date
a href
最简单的方法是在您的列标题上放置一个链接,指向同一页面。在查询字符串中,放置一个变量,以便您知道他们单击了什么,然后在SQL查询中使用ORDER BY进行排序。
HTML看起来像这样:
<th><a href="mypage.php?sort=type">Type:</a></th> <th><a href="mypage.php?sort=desc">Description:</a></th> <th><a href="mypage.php?sort=recorded">Recorded Date:</a></th> <th><a href="mypage.php?sort=added">Added Date:</a></th>
并在php代码中,执行以下操作:
<?php $sql = "SELECT * FROM MyTable"; if ($_GET['sort'] == 'type') { $sql .= " ORDER BY type"; } elseif ($_GET['sort'] == 'desc') { $sql .= " ORDER BY Description"; } elseif ($_GET['sort'] == 'recorded') { $sql .= " ORDER BY DateRecorded"; } elseif($_GET['sort'] == 'added') { $sql .= " ORDER BY DateAdded"; } $>
注意,您不应直接采用$ _GET值并将其附加到查询中。正如某些用户可以访问MyPage.php?sort =;一样。从MyTable删除;