按标题排序表

时间:2013-03-24 13:47:22

标签: php mysql html-table

我希望能够通过单击标题对表进行排序。我在网上找到了一些如何做到这一点的例子,但是当我尝试遵循它们时,我得到了错误。任何帮助将不胜感激。这是我用来从MySQL创建表的PHP代码。

<?php
session_start(); 
$Town = $_POST['Town'];
$Range = $_POST['Range'];
$Section = $_POST['Section'];

$con = mysql_connect('server, 'database', 'password');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ncwrpc", $con);

$sql = "SELECT * FROM `index8` WHERE `MAPID` = $Town$Range$Section LIMIT 0, 500 ";

$result = mysql_query($sql);
echo "<table border='2' cellpadding='5' cellspacing='2' bordercolor='#000000' bgcolor='#B8B8B8' >
<tr>

<h2>TOWN: $Town N - RANGE: $Range E - SECTION: $Section</h2>
<th bgcolor=\"#669999\">MAP</th>
<th bgcolor=\"#669999\">DESC. 1</th>
<th bgcolor=\"#669999\">DESC. 2</th>
<th bgcolor=\"#669999\">REMARKS</th>
<th bgcolor=\"#669999\">SURVEYOR</th>
<th bgcolor=\"#669999\">CLIENT</th>
<th bgcolor=\"#669999\">YEAR</th>
</tr>";

$color = "0"; 
while($row = mysql_fetch_array($result)) 
{ 
    if($color == "0"){ 
        echo "<tr>"; 
        echo "<td bgcolor=\"#FFFFFF\"><a href=\"".$row['LINK']."\" target=\"_blank\">".$row['MAP1']."</a></td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Desc1'] . "</td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Desc2'] . "</td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Remarks'] . "</td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Surveyor'] . "</td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Client'] . "</td>"; 
        echo "<td bgcolor=\"#FFFFFF\">" . $row['Y'] . "</td>"; 
        echo "</tr>"; 
        $color = "1"; 
    }else{ 
        echo "<tr>"; 
        echo "<td bgcolor=\"#FFF380\"><a href=\"".$row['LINK']."\" target=\"_blank\">".$row['MAP1']."</a></td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Desc1'] . "</td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Desc2'] . "</td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Remarks'] . "</td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Surveyor'] . "</td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Client'] . "</td>"; 
        echo "<td bgcolor=\"#FFF380\">" . $row['Y'] . "</td>"; 
        echo "</tr>"; 
        $color = "0"; 
    } 
}  


?>

2 个答案:

答案 0 :(得分:1)

你可能想看一下jQuery数据表(http://www.datatables.net/)来完成这项工作,还有更多的开箱即用。

如果你真的想在mysql中解决它,只需在你的sql查询中添加一个SORT BY field(其中field是你想要排序的字段的占位符)。然后您可以将此字段添加到html代码中的排序链接。

答案 1 :(得分:1)

你可以通过简单的操作html对数据进行排序,使用jquery,有一大堆像this这样的免费插件,对你的服务器来说更简单,更快,成本更低

相关问题