我试图找到一种方法从我的html表上的mysql数据库中过滤我的sql数据。我遇到的麻烦是因为它是一张动态表格。我应该在html表上进行排序,如果是这样,我如何从sql查询(整个表)中获取结果html,而不是只有一行的html。
如果我需要对SQL查询本身进行排序,如何在不需要每次刷新页面的情况下执行此操作?
感谢您的帮助!
这是我的参考代码:
<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name ORDER BY id DESC";
// OREDER BY id DESC is order result by descending
}
$result=mysql_query($sql);
?>
<html>
<head>
<script type="text/javascript" charset="utf-8" src="jquery.js"></script>
</head>
<table id="forum" width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<thead>
<tr>
<th width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td>
<th width="43%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td>
<th width="10%" align="center" bgcolor="#E6E6E6"><strong>Author</strong></td>
<th width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td>
<th width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td>
<th width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td>
</tr>
</thead>
<?php
// Start looping table row
while($rows=mysql_fetch_array($result)){
?>
<tbody>
<tr>
<td bgcolor="#FFFFFF"><? echo $rows['threadtype']; ?></td>
<td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td>
</tr>
</tbody
<?php
// Exit looping and close connection
}
mysql_close();
?>
<tfoot>
<tr>
<td colspan="6" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>Create New Topic</strong> </a></td>
</tr>
</tfoot>
</table>
</html>
答案 0 :(得分:0)
如果您没有大量数据[少于100行],使用一个查询加载整个事物并对客户端进行所有排序/过滤是合理的。
有很多很棒的jquery插件可以做到这一点。这是一个我喜欢的好人:
如果您想扩展并处理大量行,那么您不想一次加载所有行。
在这种情况下,您希望使用查询实现分页模式。如果您需要进行分页,那么当用户更改要排序的列时,您还需要查询在后端进行排序。
不是重新发明轮子,特别是如果你不舒服地在这里滚动,你可以用很多工具来做这件事。这个似乎很有希望:http://blog.drale.com/mysql-table-viewer-with-pagination-and-sorting/