Dans ce scénario, nous avons un tableau HTML rempli de données extraites d'une base de données MySQL. L'objectif est de trier les lignes du tableau en cliquant sur les en-têtes de colonnes (Type, Description, Date d'enregistrement, Date d'ajout).
Pour y parvenir, nous pouvons exploiter PHP et MySQL pour gérer la logique de tri.
Le tableau HTML est structuré comme suit :
<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>
Dans le code PHP, nous gérons le tri basé sur le $ Paramètre _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); ?>
Les requêtes SQL sont modifiées dynamiquement pour inclure la clause ORDER BY appropriée en fonction de la sélection de l'utilisateur.
Il est crucial de noter que les entrées utilisateur doivent être nettoyées avant d'être incorporées dans une requête SQL. Cela empêche les utilisateurs malveillants de compromettre la base de données. La désinfection implique la validation et le filtrage des entrées de l'utilisateur pour garantir qu'elles ne contiennent pas de caractères ou de code malveillants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!