【发布时间】:2017-12-04 08:53:56
【问题描述】:
我有一个代码,里面有用户会从 MySQL 中搜索名字。
首先mysql应该在first_name中搜索,然后去last_name寻找相同的搜索选项,然后显示结果。 (来自名字和姓氏)
我试过了,但它只显示了名字的结果
请帮帮我。
这里是代码:-
try {
$keyword = trim($_GET["keyword"]);
if ($keyword <> "" ) {
$sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
. " (first_name LIKE :keyword) ORDER BY first_name ";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":keyword", $keyword."%");
} elseif ($keyword <> "" ) {
$sql = "SELECT * FROM tbl_contacts WHERE 1 AND "
. " (last_name LIKE :keyword) ORDER BY first_name ";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":keyword", $keyword."%");
}else {
$sql = "SELECT * FROM tbl_contacts WHERE 1 ORDER BY first_name ";
$stmt = $DB->prepare($sql);
}
$stmt->execute();
$total_count = count($stmt->fetchAll());
【问题讨论】:
-
你为什么有
WHERE 1 AND?只是想知道。 -
使用
OR而不是AND,如果一个失败,两者都将使用AND。 -
你的
elseif没有任何意义。你永远不会到达那里。 -
@jeroen that too ;-) 查询需要修改为在一个查询中使用
OR。 -
@Fred-ii- 那么如何获得代码..?