我正在努力学习我的php,并希望在正确的方向上提供一些帮助。到目前为止,这是我的代码:
<?php
$connection = mysql_connect("localhost", "root") or die(mysql_error());
mysql_select_db("rsi", $connection) or die(mysql_error());
$query = "SELECT * FROM events";
$result = mysql_query ($query) or die ("error in query");
if (mysql_num_rows($result)>0) {
echo "<table border=1></tr>" .
"<th>ID</th>" .
"<th>Name</th>" .
"<th>Date</th>" .
"<th>Location</th>" ;
while ($row = @ mysql_fetch_array($result)){
print "<tr>";
print "<td>".$row['id']."</td>";
print "<td>".$row['name']."</td>";
print "<td>".$row['date']."</td>";
print "<td>".$row['location']."</td>";
print "</tr>";
}
print "</table>";
}
?>
我现在希望通过单击每个/任何标题(例如日期)来从数据库中排序结果。谢谢你的时间。
答案 0 :(得分:0)
要订购结果,请使用ORDER BY
。
以下是按ID排序的示例:
$query = "SELECT * FROM events ORDER BY id";
要在单击标题时进行订购,您需要以某种方式执行新查询。怎么做我留给你找。通常,您使用参数重新加载整个页面,或者使用ajax,这样您就可以更新页面上的内容而无需重新加载页面。
答案 1 :(得分:0)
您必须按列名称传递订单,并按GET或POST升序或降序。 以下是GET的一个例子。
$query = "SELECT * FROM events";
if(isset($_GET['sort'])
{
$query.= ' order by '.mysql_real_escape_string($_GET['sort']).' '.mysql_real_escape_string($_GET['order']);
}
$result = mysql_query ($query) or die ("error in query");
while ($row = @ mysql_fetch_array($result)){
print "<tr>";
print "<td>".$row['id']."</td>";
print "<td>".$row['name']."</td>";
print "<td><a href='http://www.domain.com/currentpageurl?sort=date&order=asc'>".$row['date']."</td>";
print "<td>".$row['location']."</td>";
print "</tr>";
}
答案 2 :(得分:0)
如果您使用Shakti的答案,我建议您不要在查询中直接使用$ _GET。我会通过某种健全性检查来运行你的$ _GET并且只允许特定的值,否则你会让你的站点对SQL注入攻击开放。
答案 3 :(得分:0)
我认为您希望在浏览器中对表格进行排序。您可能不希望仅以不同的排序顺序查询数据库中的相同信息。这样的事可能是:http://tablesorter.com/docs/#Demo
使用tablesorter:
echo "<table border=1 id="myTable" class="tablesorter"><tr>" ."<th>ID</th>" ."<th>Name</th>" ."<th>Date</th>" ."<th>Location</th></tr>" ;
<script> $(document).ready(function() { $("#myTable").tablesorter(); } ); </script>
<Head>
部分:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
从http://tablesorter.com/__jquery.tablesorter.zip下载jquery.tablesorter.js
包含文件jquery.tablesorter.js,如下所示:
<script type="text/javascript" src="/path/to/jquery.tablesorter.js"></script>