ホームページ >データベース >mysql チュートリアル >MySQL から取得した HTML テーブルの行を並べ替えるにはどうすればよいですか?

MySQL から取得した HTML テーブルの行を並べ替えるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 00:02:02981ブラウズ

How to Sort HTML Table Rows Retrieved from MySQL?

MySQL から取得した HTML テーブルの行の並べ替え

このシナリオでは、MySQL データベースから取得したデータが入力された HTML テーブルがあります。目標は、列ヘッダー (タイプ、説明、記録日、追加日) をクリックしてテーブルの行を並べ替えることです。

これを実現するには、PHP と MySQL を活用して並べ替えロジックを処理できます。

HTML 構造

HTML テーブルは次のように構造化されています:

<table>
  <thead>
    <tr>
      <th><a href="mypage.php?sort=type">Type</a></th>
      <th><a href="mypage.php?sort=desc">Description</a></th>
      <th><a href="mypage.php?sort=recorded">Recorded Date</a></th>
      <th><a href="mypage.php?sort=added">Added Date</a></th>
    </tr>
  </thead>
  <tbody>
    <?php while($row = mysql_fetch_array($result)): ?>
      <tr>
        <td><?php echo $row['type']; ?></td>
        <td><?php echo $row['description']; ?></td>
        <td><?php echo $row['recorded_date']; ?></td>
        <td><?php echo $row['added_date']; ?></td>
      </tr>
    <?php endwhile; ?>
  </tbody>
</table>

PHP ロジック

PHP コードでは、$ に基づいて並べ替えを処理します。 _GET['sort'] パラメータ。

<?php

$sql = "SELECT * FROM MyTable";

if (isset($_GET['sort'])) {
    switch ($_GET['sort']) {
        case 'type':
            $sql .= " ORDER BY type";
            break;
        case 'desc':
            $sql .= " ORDER BY description";
            break;
        case 'recorded':
            $sql .= " ORDER BY recorded_date";
            break;
        case 'added':
            $sql .= " ORDER BY added_date";
            break;
    }
}

$result = mysql_query($sql);

?>

MySQL クエリ

SQL クエリは、ユーザーの選択に基づいて適切な ORDER BY 句を含めるように動的に変更されます。

セキュリティに関する考慮事項

ユーザー入力は、SQL クエリに組み込まれる前にサニタイズする必要があることに注意することが重要です。これにより、悪意のあるユーザーがデータベースを侵害するのを防ぎます。サニタイズには、ユーザー入力の検証とフィルタリングが含まれ、悪意のある文字やコードが含まれていないことを確認します。

以上がMySQL から取得した HTML テーブルの行を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。