php - 为什么使用 AND 运算符进行关键字搜索无法在 php 中获取搜索结果

标签 php mysql

我有一张表,包括 id、标题和文本。我让用户从下拉菜单中选择标题和文本。基于标题和文本,我想显示搜索结果。但是,当我使用 AND 运算符编写查询时,它不会显示任何结果,尽管数据库中存在匹配的数据。谁能帮我解决这个问题吗?

这是查询搜索代码

$search_value=$_POST["search"];
$services=$_POST["services"];

$sql="select * from articles where title like '%$search_value%' AND text like '%services%' ";


$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["title"]. $row["text"];
    }
} else {
    echo "0 results";
}

这是下拉列表

<form action="search.php" method="post">

    <select class="form-control" name="search" id="select1">                   
    <option value="Ampara">Ampara</option>
    <option value="Anuradhapura">Anuradhapura</option>
    <option value="Badulla">Badulla</option>
    <option value="Batticaloa">Batticaloa</option>
    <option value="Colombo">Colombo</option>
    </select>
    <select class="form-control" name="services" >                   
    <option value="Architecture">Architecture</option>
    <option value="Astrology">Astrology</option>
    <option value="Electrical">Electrical</option>
    <option value="Landscaping">Landscaping</option>
    <option value="Hardware">Hardware</option>
    <option value="Plumbing">Plumbing</option>
</select>

这是我的数据库表的屏幕截图 enter image description here

最佳答案

请将您的查询替换为以下内容, 您错过了查询中文本字段的 $ 登录服务变量

$sql="select * from articles where title like '%" . $search_value . "%' AND text like '%" . $services . "%' ";

关于php - 为什么使用 AND 运算符进行关键字搜索无法在 php 中获取搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297669/

相关文章:

php - 在 RegEx 中,如何找到包含不超过 3 个唯一字符的行?

PHP MySQL 将结果查询行合并到单列中

Mysql 在同一查询中连接 2 个表。内连接还是左连接?

php - 如何将产品的 id 存储在数组中

php - 使用 DATE_SUB 卡住(对上周记录进行排序)

php - 从 MySQL 数据库中的最后 5 条记录中获取特定列

java - 登录认证编程模式

php - session 注销同时获取大量数据

php - 如何在 INSERT 中执行 foreach?

php - Laravel pluck 返回 id 值 "0"