0

一意の 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エクスプローラーのように)。どうすればこれができるか知っている人はいますか?解決策または正しい方向に向けられていることは、絶対に素晴らしいことです。

4

2 に答える 2

2

その th からリンクを作成するだけです (例: <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 クエリに配置しないのはなぜだと思うでしょうか? それをしないでください!!! そのハッカーや誰でも簡単にデータベースにアクセスできます...

于 2013-05-27T16:39:35.493 に答える