目前我有一個簡單的搜索查詢,其工作原理如下:PDO - 按價格升序或降序
$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,但我不確定這是否是安全排序結果的方式,有沒有人有更好的方法?
此方法不是最好的,因爲當用戶選擇排序選項時,例如「顯示價格從最低到最高」,下拉框會迴應已發送到$ _GET ['price']的值,即「 ASC「,所以在下拉框中它會在表單發送後讀取ASC!
對不起,如果這是混亂請評論如果你想我重新解釋這一點,任何幫助或建議非常感謝!
在這種情況下,只有兩個值的順序,做爲什麼不硬編碼他們? (選項值=「ASC」<?php if($ _ GET [「price」] ==「ASC」){echo「selected ='selected'」; }?>>從低到高'或者沿着這些線。你可以使用數組和循環來做同樣的事情。 –
完美!正是我需要的! thankyou – neeko
爲什麼你沒有準備好所有的價值觀,或者至少在那裏檢查ASC/DESC? ect –