我在使用下拉列表对表中的数据库进行排序时遇到问题我已经使用了一些方法,但是没有起作用
这是我的php/查询代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "admin_table";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// $res = array('un' => 'username',
// 'hs' => 'highscore',
// 'oi' => 'oil',
// 'ml' => 'metal',
// 'cp' => 'copper',
// 'gd' => 'Gold', );
$sql = " SELECT id,username,highscore,oil,metal,copper,gold FROM users";
switch ($_POST['sort']) {
case 'un':
$sql .='ORDER BY username';
break;
case 'hs':
$sql .='ORDER BY highscore';
break;
case 'oi':
$sql .='ORDER BY oil';
break;
case 'ml':
$sql .='ORDER BY metal';
break;
case 'cp':
$sql .='ORDER BY copper';
break;
case 'gd':
$sql .='ORDER BY gold';
break;
}
$result = mysqli_query($conn, $sql);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
?>
这是我的html代码:
<div class = 'sort-table'>
<form name="sort" action="" method="POST">
<select id="sorting" name="select">
<option value="id"> Sort by...</option>
<option value="username">Username</option>
<option value="highscore">Highscore</option>
<option value="oil">Oil</option>
<option value="metal">Metal</option>
<option value="copper">Copper</option>
<option value="gold">Gold</option>
</select>
<input type="submit" name="go-sort" value="OK" id="go-sort">
</form>
如果有其他的方法,请让我知道提前谢谢你,并为不便表示歉意
2条答案
按热度按时间vecaoik11#
我觉得这样更好
sq1bmfud2#
您指的是表单本身,而不是输入元素。
生成的sql格式不正确。
您的代码易受sql注入的影响。