HTML代码:
<form action="addbook.php" method="post">
<select name="sort">
<option value="FirstName">Firstname</option>
<option value="LastName">Lastname</option>
<option value="State">State</option>
<option value="City">City</option>
</select>
<input type="submit" value="Sort">
</form>
PHP代码:
if(isset($_POST['sort'])){
echo "true";
if($_POST['sort']=="FirstName"){
$sort="FirstName";
}
else if($_POST['sort']=="LastName"){
$sort="LastName";
}
else if($_POST['sort']=="City"){
$sort="City";
}
else if($_POST['sort']=="State"){
$sort="State";
}
}
$result=mysqli_query($con, "SELECT * FROM Contact ORDER BY $sort");
echo "<table border='1'>
<tr>
<th>Lastname</th>
<th>Firstname</th>
<th>Address</th>
<th>City</th>
<th>State</th>
</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['Address'] . "</td>";
echo "<td>" . $row['City'] . "</td>";
echo "<td>" . $row['State'] . "</td>";
echo "</tr>";
}
echo "</table>";
此代码在未按post变量排序时正常工作,但除此之外我只获得列表标题(城市州名称);
我测试过MYSQL命令ORDER BY不会改变列的位置;所以前缀的html行名称应该不是问题。我不明白为什么我会收到这个错误;
输出是:
Connected to MySQL
Lastname Firstname Address City State
同样在dev模式下使用chrome,post变量存在,列表提交似乎正常工作。