Php 搜索多个列
我有一个大约100个用户的用户列表,我正在尝试创建一个搜索字段,以便更容易地找到某个用户。我想按用户数据库中的多个列进行搜索 我试着创建这个查询,但是我对这个非常陌生,我不确定所有的OR语句 这是我得到的 我的搜索表单:Php 搜索多个列,php,Php,我有一个大约100个用户的用户列表,我正在尝试创建一个搜索字段,以便更容易地找到某个用户。我想按用户数据库中的多个列进行搜索 我试着创建这个查询,但是我对这个非常陌生,我不确定所有的OR语句 这是我得到的 我的搜索表单: <form action="search-users.php" method="GET" class="no-margin"> <label>Type in a keyword to search for a user.</label><
<form action="search-users.php" method="GET" class="no-margin">
<label>Type in a keyword to search for a user.</label><br><br>
<input type="text" name="keywords" autocomplete="off" placeholder="Example: John Doe"><br>
<input type="submit" value="Search Users">
</form>
<?php
if(isset($_GET['keywords'])){
$keywords = escape($_GET['keywords']);
$search = DB::getInstance()->query("
SELECT `username`,`first_name`,`last_name`,`unit`,`email`,`rent_own`,`city`,`zip`,`phone` FROM `users` WHERE
`username` LIKE '%{keywords}%' OR
`first_name` LIKE '%{keywords}%' OR
`last_name` LIKE '%{keywords}%' OR
`unit` LIKE '%{keywords}%' OR
`email` LIKE '%{keywords}%' OR
`rent_own` LIKE '%{keywords}%' OR
`city` LIKE '%{keywords}%' OR
`zip` LIKE '%{keywords}%' OR
`phone` LIKE '%{keywords}%'
");
}
?>
<!--SHOW HOW MANY RESULT ARE RETURNED-->
<h3 class="blue-tx" align="center">Found <?php echo $search->Count()?> results</h3>
<?php
if ($search->Count()){
foreach($search->results() as $s){
?>
....Display user results here.
<?php } } ?>
键入关键字以搜索用户。
然后是动作脚本:
<form action="search-users.php" method="GET" class="no-margin">
<label>Type in a keyword to search for a user.</label><br><br>
<input type="text" name="keywords" autocomplete="off" placeholder="Example: John Doe"><br>
<input type="submit" value="Search Users">
</form>
<?php
if(isset($_GET['keywords'])){
$keywords = escape($_GET['keywords']);
$search = DB::getInstance()->query("
SELECT `username`,`first_name`,`last_name`,`unit`,`email`,`rent_own`,`city`,`zip`,`phone` FROM `users` WHERE
`username` LIKE '%{keywords}%' OR
`first_name` LIKE '%{keywords}%' OR
`last_name` LIKE '%{keywords}%' OR
`unit` LIKE '%{keywords}%' OR
`email` LIKE '%{keywords}%' OR
`rent_own` LIKE '%{keywords}%' OR
`city` LIKE '%{keywords}%' OR
`zip` LIKE '%{keywords}%' OR
`phone` LIKE '%{keywords}%'
");
}
?>
<!--SHOW HOW MANY RESULT ARE RETURNED-->
<h3 class="blue-tx" align="center">Found <?php echo $search->Count()?> results</h3>
<?php
if ($search->Count()){
foreach($search->results() as $s){
?>
....Display user results here.
<?php } } ?>
试试这个:
<?php
if(isset($_GET['keywords'])){
$keywords = escape($_GET['keywords']);
$search = DB::getInstance()->query("
SELECT `username`,`first_name`,`last_name`,`unit`,`email`,`rent_own`,`city`,`zip`,`phone` FROM `users` WHERE
`username` LIKE '%keywords%' OR
`first_name` LIKE '%keywords%' OR
`last_name` LIKE '%keywords%' OR
`unit` LIKE '%keywords%' OR
`email` LIKE '%keywords%' OR
`rent_own` LIKE '%keywords%' OR
`city` LIKE '%keywords%' OR
`zip` LIKE '%keywords%' OR
`phone` LIKE '%keywords%'
");
}
?>
<!--SHOW HOW MANY RESULT ARE RETURNED-->
<h3 class="blue-tx" align="center">Found <?php echo $search->Count()?> results</h3>
<?php
if ($search->Count()){
foreach($search->results() as $s){
?>
....Display user results here.
<?php } } ?>
您忘记了变量关键字中的$
更改:
“%$KEYONS}%”=>“%$KEYONS}%”您的$KEYONS
绑定到查询的位置在哪里?@ex3v我会从搜索表单中获取关键字您不理解我的问题。变量$keywords
包含表单中的一些关键字。我明白了。我的问题是-这个变量在代码的哪一部分传递给查询?查询如何“知道”必须用该变量填充%%{keywords}%
字段?请将'%%{keywords}%
更改为'%{$keywords}%'
@ex3v我不确定,我想我最好找出那个变量。当我编写查询时,DB::getInstance()->query
是一个类,不需要我绑定或执行。我尝试了您的解决方案,但没有成功。谢谢你的帮助。将'%{keywords}%'
更改为'%{$keywords}%'
成功了。我建议将“{keywords}%”更改为“%$keywords%”。当您在mysql服务器中执行相同的代码时,会出现什么错误?