Php MySQL通过选择框选择更改限制

时间:2014-09-09 07:00:18

标签: php mysql

我目前正面临按限制显示结果的问题,我的查询以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的表单没有发布,所以我得到一个查询错误,直到我更改限制值并提交它。

如何在初始页面加载时选择默认值?

5 个答案:

答案 0 :(得分:1)

$limit设置为默认值,例如0,只有在发布值时才更改

$limit = 0;
if(isset($_POST["limit"])) $limit = $_POST["limit"];

另请注意,您不应在查询中粘贴用户输入,因为这可能会导致sql injection

答案 1 :(得分:1)

您可以测试变量是否为空,然后将其设置为默认值。

$limit = $_POST["limit"];
if ($limit == '') $limit = 5;

答案 2 :(得分:1)

这是你在寻找

页面加载选中=“已选择”采用默认值。

<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;

答案 3 :(得分:0)

你可以在PHP中使用条件检查

像这样

$limit=isset($_POST["limit"])?$_POST["limit"]:5; // or change the value which you want to show onload

答案 4 :(得分:0)

在发布$_POST['limit']之前,

limit将不存在,例如通过表格提交。

如果你想要默认,我建议:

$limit = filter_var($_POST['limit'], FILTER_VALIDATE_INT);
if(empty($limit) || !$limit) $limit = 10;

然后将$ limit绑定到您准备好的声明 - 假设您正在使用它。

如果您没有使用预准备语句,那么在将其连接到SQL语句之前,您最好检查$_POST['limit']的内容,就像这里建议的其他帖子一样。