2011-10-22 70 views
0

我正在努力与我的PHP,并会喜欢在正确的方向一些援助。这是我到目前为止的代码:SQL ORDER BY /排序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

要订购结果请使用ORDER BY

下面是一个例子通过ID命令:

$query = "SELECT * FROM events ORDER BY id"; 

得到它的命令,当你点击你需要以某种方式执行新的查询头。怎么做,我离开你找到。通常,您可以使用参数重新加载整个页面,以便排序或使用ajax,从而可以在不重新加载页面的情况下更新页面上的内容。

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>"; 
    } 
0

如果您使用Shakti的答案,我会建议不直接在查询中使用$ _GET。我会通过某种完整性检查来运行$ _GET,并且只允许特定的值,否则您将使您的站点面临SQL注入攻击。

0

我认为你正在寻找在浏览器中排序表。您可能不想按照不同的排序顺序继续查询数据库中的相同信息。像这样的事情也许:http://tablesorter.com/docs/#Demo

要使用的tablesorter:

  1. 更改代码的一行:
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> 
    
  • 如果您还没有jQuery的,它包含在<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>