【发布时间】:2019-12-05 20:09:36
【问题描述】:
我有select 和textbox 输入用于过滤和搜索。当用户选择名字时,用户只能搜索名字。如果用户搜索“James”,则只有名字“James”会出现在表中。我怎样才能做到这一点?有人可以帮我解决我的问题吗?这是我的查询。
public function searchUserStatus($keyword) {
$sql = "SELECT tbl_user.user_id, tbl_user.username, tbl_user.password,
tbl_user.first_name,tbl_user.last_name, tbl_user.is_employed,
tbl_barangay.barangay_name FROM tbl_user INNER JOIN tbl_barangay ON
tbl_barangay.barangay_id = tbl_user.barangay_id WHERE
(tbl_user.first_name LIKE :keyword AND tbl_user.username LIKE :keyword
OR tbl_user.first_name LIKE :keyword OR tbl_user.last_name LIKE :keyword
OR tbl_user.barangay_name LIKE :keyword) OR (tbl_user.last_name LIKE
:keyword AND tbl_user.username LIKE :keyword OR tbl_user.first_name LIKE
:keyword OR tbl_user.last_name LIKE :keyword OR tbl_user.barangay_name
LIKE :keyword)";
$stmt = $this->connection->prepare($sql);
$stmt->execute([
":keyword" => '%' . $keyword . '%'
]);
return $stmt->fetchAll();
}
【问题讨论】:
-
var_dump(searchUserStatus('James'))给你什么?似乎是您的代码使用了导致问题的数据,而不是您的 SQL,因为它应该返回['id', 'username', 'password', 'first_name', 'last_name', 'is_employed', 'barangay_name']列 -
我该如何解决?你能帮助我吗?我想先选择字段名称,然后我只能根据我选择的字段名称搜索数据。
-
就像我说的,
var_dump(searchUserStatus('James'))给你什么? -
没有数据显示
-
你在 RAW sql 上试过了吗?你得到应得的答案了吗?