我目前正面临按限制显示结果的问题,我的查询以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
的表单没有发布,所以我得到一个查询错误,直到我更改限制值并提交它。
如何在初始页面加载时选择默认值?
答案 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']
的内容,就像这里建议的其他帖子一样。