現在、次のように機能する簡単な検索クエリがあります。
$username = $_SESSION['username'];
$chosencategory = $_GET['category'];
$price = $_GET['price'];
$search = $_GET['search'];
$terms = explode(" ", $search);
if ($price && $chosencategory){
$sql = "SELECT * FROM people WHERE MATCH (lname,fname) AGAINST (:search IN BOOLEAN MODE) AND category='$chosencategory' ORDER BY price $price";
$q = $conn->prepare($sql) or die("failed!");
$q->bindValue(':search',"%".$search."%",PDO::PARAM_STR);
$q->execute();
}
たとえば、ユーザーが「最低から最高の価格を表示する」を選択すると、送信される値は$_GET['price']
= ASCになりますが、これが結果を並べ替える安全な方法かどうかはわかりませんが、もっと良い方法はありますか?
また、ユーザーが「価格の最低から最高への表示」などの並べ替えオプションを選択した場合、ドロップダウンボックスは、「ASC」である$ _GET['price']に送信された値をエコーするため、この方法は最適ではありません。フォームが送信された後、ASCと表示されるドロップダウンボックス!
これが混乱している場合は申し訳ありませんが、これを再説明したい場合はコメントしてください。助けやアドバイスをいただければ幸いです。