加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Php select * where like

发布时间:2020-12-13 17:16:30 所属栏目:PHP教程 来源:网络整理
导读:嗨,我正在尝试搜索网站的搜索.它有2个输入信息,一个是下拉列表. div id="search"form action="projectsearchall.php" method="post" enctype="multipart/form-data"h3Search for an Item/h3pKeywords/ppinput name="keywords" type="text" value="keywords"/
嗨,我正在尝试搜索网站的搜索.它有2个输入信息,一个是下拉列表.

<div id="search">
<form action="projectsearchall.php" method="post" enctype="multipart/form-data">
<h3>Search for an Item</h3>

<p>Keywords</p><p><input name="keywords" type="text" value="keywords"></p>


<p>Select A Location</p><p>

<select name="location" id="jumpMenu">
 <option>Any Location</option>
 <option>Antrim</option>
 <option>Armagh</option>
 <option>Carlow</option>
 <option>Cavan</option>


</select>
</p>
<p>

????

</form>
</div>

我似乎无法弄清楚如何组合2个输入来给出结果,我可以单独做,但不能一起工作以获得更准确的结果.

PHP

$keywords = $_POST['keywords'];
$keylocation =$_POST['location'];
$username = $_SESSION['username'];

   //MySQL Database Connect
 include 'connect.php';
 //make sql query

$result = mysqli_query($con,"SELECT * FROM projectitem where description  like '%$keywords%'  or item like '%$keywords%' or location like '%$keywords%'");

提前致谢!

解决方法

我认为在运行查询之前,您可能会进行一些预处理.

首先,您需要为您的选择选项提供某种值以进行检查.

我不知道您确切的数据库结构,但假设您正在使用选择的文本,您可能想尝试这样:

$query = "SELECT * FROM projectitem WHERE (description LIKE '%$keywords%' OR item LIKE '%$keywords%')";

这是您的基本查询,现在运行它将检查关键字,但没有位置.

if($keylocation != "Any location") $query .= " AND location = '$keylocation'";

最后一行将添加位置作为查询的附加过滤器.运行它,看看它做了什么. (虽然我不确定字符串比较)

啊,是的,作为最后的建议:确保通过转义函数mysqli_escape_string运行您的输入.否则,您将打开SQL注入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读