MySQL从某个值开始

时间:2013-05-27 16:24:05

标签: php html-table

我有一个带有唯一ID的mysql表,我将它们显示在html表中。对于那些好奇的人,这是代码。

<?php
require_once '../page.php';
require 'checklogin.php';

$page = new Page();
$page->title = 'View Students';
$page->sidebarliab = true;
$lastvari;

$id = $_GET['id'];
echo $id;

// Connect to database
$con = new mysqli($mysqlurl, $mysqlusername, $mysqlpassword, $mysqldatabase);

// Check connection
if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// Prepare to select all students

$stmt = $con->prepare("SELECT Last_Name, First_Name, Student_ID FROM Students LIMIT 30");
$stmt->execute(); // Execute the query
$stmt->bind_result($last_name, $first_name, $student_id); // Bind variables to the result of the query
?>

<h2 style='margin-left:1%'>All Students</h2>
<table id='liabilityTable'>
    <thead>
    <tr>
        <th>Last Name</th>
        <th>First Name</th>
        <th>Student ID</th>
        <th>Homeroom</th>
        <th>Number of Liabilities</th>
    </tr>
</thead>

<tbody>
    <?php
    while($stmt->fetch()) {
        echo "<tr>";
        ?>
        <td><?=$last_name?></td>
        <td><?=$first_name?></td>
        <td><?=$student_id?></td>
        <?php
        echo "<td></td>";
        echo "<td></td>";
        echo "</tr>";
            $lastvari = $student_id;
        }

    $stmt->close(); // Close the statement
        $con->close(); // Close connection to database
        ?>
    </tbody>
</table>

<a href=<?php echo "students_view.php?id=$lastvari"; ?>><button type="button">Next Page</button></a>

所以基本上,这是一张桌子。我希望能够单击顶行并能够按字母顺序组织它(比如点击姓氏将按姓氏组织,点击ID将是数字,等等,就像在Windows资源管理器中一样)。有谁知道我怎么能这样做?无论是解决方案还是只是指向正确的方向都绝对是太棒了。

2 个答案:

答案 0 :(得分:2)

只需创建一个链接(例如:<th><a href="?order_by=last_name">Last name</a></th>) 比添加到你的代码大开关:

$order_by = '';
switch($_GET['order_by']){
   case 'last_name': // Value in your order_by A Href
      $order_by = 'Last_Name'; // Name of column in DB 
   break;
   .
   .
   .
   default:
     $order_by = 'your default value';
}

然后添加到您的查询

 $stmt = $con->prepare("SELECT Last_Name, First_Name, Student_ID FROM Students ORDER BY " . $order_by . " ASC LIMIT 30");

也许您会想到为什么不跳过那个大转换并将$ _GET变量直接放到SQL查询中? 请勿这样做!有了这个黑客或任何人都可以轻松访问您的数据库......

答案 1 :(得分:0)

编辑


以下几个备选方案:)

jqtablekit:一个简单的tableorter
tablesorter:实际上是一个具有各种功能的插件,没有提到镀铬支持 gabriele:也是一个带有工作演示的简单tableorter