簡體   English   中英

PHP MySQL通過選擇框更改限制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM