php - PHP 如果 $_GET 为空,则从数据库中选择所有内容
问题描述
如果用户没有在下拉菜单中选择任何内容或选择他在那里选择的内容,我会尝试从我的数据库中选择所有内容。所以基本上我想做的是检查 $filter 是否为空,如果是,则选择所有内容,但不知道该怎么做。这是我的选择,如果我从下拉列表中选择某些东西,它会很好用,但是在我选择某些东西之前,它会给出未定义的索引警告。
<?php
$visibility = 1;
$filter = $_GET['slct'];
$stmt = $conn->prepare("SELECT id, name, description, address, phone, phone2, email, company, job, visibility, filter, confirmed, userid FROM cards WHERE visibility = ? AND filter = ?");
$stmt->bind_param("is", $visibility, $filter);
$stmt->execute();
$result = $stmt->get_result();
while ($record = mysqli_fetch_assoc($result)) {
?>
和选择:
<select name="slct" id="slct" onchange="form.submit()">
<option value="One">One</option>
<option value="Two">Two</option>
</select>
解决方案
首先获取全局slct
$visibility = 1;
$filter = isset($_GET['slct']) ? $_GET['slct'] : "";
尝试构造查询是否slct
设置后
$baseQuery = "SELECT id, name, description, address, phone, phone2, email, company, job, visibility, filter, confirmed, userid FROM cards WHERE visibility = ?" ;
$filterPart = isset($_GET['slct']) ? " AND filter = ?" : "";
准备语句并相应地绑定参数并执行
$stmt = $conn->prepare( $baseQuery. $filterPart);
if(isset($_GET['slct'])){
$stmt->bind_param("is", $visibility, $filter);
}else{
$stmt->bind_param("is", $visibility);
}
$stmt->execute();
推荐阅读
- sql - 这个条件语句的含义是什么?
- r - 处理非常大的小问题时,我有哪些选择?
- java - ResultSet 常量中的行顺序是否是通过 JDBC 对相同状态的 DB 数据进行的相同 SQL 查询?
- excel - 通过 Jenkins 触发 VBScript 时 Excel 不可见
- c++ - ptrace 是否访问用户或内核空间?
- python - gremlin-python:什么是有效的顶点自定义 ID?
- java - 连接到数据库 mysql 工作台时发生错误:java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接
- r - utils::browseURL 删除带有 file:// urls 的查询字符串?
- php - 发布产品后删除图片附件
- c++ - 在用户桌面上运行 GUI 程序作为 SYSTEM 服务