[英]Php MySQL changing limit by select box selection
我目前在顯示結果限制時遇到問題,我的查詢以ORDER BY date DESC limit $limit
結尾,並且我的html代碼是
<select name="limit" id="limit">
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select>
在我的PHP中,我有$limit=$_POST["limit"];
現在,這基本上是可行的,除了在頁面加載時不發布包含limit
的表單之外,因此在更改limit的值並提交之前,我會收到查詢錯誤。
如何在初始頁面加載時選擇默認值?
將$limit
設置$limit
默認值(例如0),並僅在存在發布值時更改它:
$limit = 0;
if(isset($_POST["limit"])) $limit = $_POST["limit"];
另請注意,您不應在查詢中粘貼用戶輸入,因為這可能導致sql注入 。
您可以測試變量是否為空,然后將其設置為默認值。
$limit = $_POST["limit"];
if ($limit == '') $limit = 5;
這是您要找的嗎
在頁面加載時,selected =“ selected”為默認值。
<option value="15" selected="selected">15</option>
在PHP中
if(isset($_POST['limit']) && !empty($_POST['limit'])) {
$limit = $_POST['limit'];
} else {
$limit = '5'; /* Your default value*/
}
在查詢中,嘗試類似這樣的操作
ORDER BY date DESC limit ".$limit;
您可以在PHP中使用條件檢查
像這樣
$limit=isset($_POST["limit"])?$_POST["limit"]:5; // or change the value which you want to show onload
$_POST['limit']
在通過表單提交limit
發布之前將不存在。
如果您想要默認值,我建議:
$limit = filter_var($_POST['limit'], FILTER_VALIDATE_INT);
if(empty($limit) || !$limit) $limit = 10;
然后將$ limit綁定到准備好的語句-假設這就是您所使用的。
如果您不使用准備好的語句,那么最好在將$_POST['limit']
的內容連接到SQL語句之前,先檢查其內容,就像此處建議的其他文章一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.