管理者がユーザーを表示できるようにするユーザーデータベースがあります。管理者がユーザーをさまざまなフィールドで並べ替えられるようにしたいと思います。(例:名または名前)。
私の問題:
それはソートされないということです。ドロップダウンボックスと送信ボタンを使用してそれを実行しようとしています。phpMyAdminでSQLを試し、ステートメントが正しいことを確認しました。また、mysqlエラーではないことを確認するためにまたはdieを追加しました。ソートされていないだけでエラーは発生しません。また、ドロップダウンをエコーアウトして、正しい値が変数に追加されていることを確認してみました。
コード:HTMLドロップダウン
<form action="View_users.php" enctype="multipart/form-data" name="sort" id="sort" method="post" align="right">
<label>
<select name="sortdropdown" id="sortdropdown">
<option value="<?php echo $sortby; ?>"><?php echo $sortby; ?></option>
<option value="name">First Name</option>
<option value="surname">Surname</option>
<option value="email">Email</option>
<option value="signupdate">Date</option>
</select>
</label>
<label>
<input type="submit" name="button" id="button" value="Sort" />
</label>
</form>
論理:
$sortby = "";
if (!isset($_POST['sortdropdown'])) {
$sortby = "surnname";
}else{
$sortby = mysql_real_escape_string($_POST['sortdropdown']);
}
// This block grabs the whole list for viewing
$product_list = "";
$counter = 0;
$sql = mysql_query("SELECT * FROM users ORDER BY '$sortby' ASC") or die(mysql_error());
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {
while($row = mysql_fetch_array($sql)){
$counter++;
$id = $row["id"];
$email = $row["email"];
$name = $row["name"];
$surname = $row["surname"];
$lastlogin = $row["lastlogin"];
$signupdate = $row["signupdate"];
if (is_float($counter/2)) {$class = "#CCCCCC"; }
else {$class = "white";}
$product_list .= '<tr bgcolor="'.$class.'">
<td>'.$surname.'</td>
<td>'.$name.'</td>
<td>'.$email .'</td>
<td><a href="user.php?id=' . $id . '">View More</a></td></tr>';
}
} else {
$product_list = "There are no users in the system yet";
}
ありがとう