php - 下拉和输入搜索框。不搜索数据库并提取 0 个结果

标签 php html mysql

希望大家能帮忙。我正在创建一个搜索栏,允许用户选择他们想要搜索的字段并输入搜索词。然而,当他们搜索时,似乎会产生“未找到记录”。有人可以看一下我的代码并看看我可能哪里出了问题吗?非常感谢!

HTML 表单

<form name="search" method="post" action='recordresult.php' class="form-style-1">
    Search for: <input type="text" name="find" /> in

    <Select NAME="field">
        <Option VALUE="first_name">First Name</option>
        <Option VALUE="surname">Surname</option>
        <Option VALUE="address">Address</option>
        <Option VALUE="phonenumber">Phone Number</option>
    </Select>
    <input type="hidden" name="searching" value="yes" />
    <input type="submit" name="search" value="Search" />
</form>

PHP

<?php
include("config.php");
$link = mysqli_connect($server, $db_user, $db_pass) or die ("Could not connect to mysql because ".mysqli_error($link));

// select the database
mysqli_select_db($link, $database)
    or die ("Could not select database because ".mysqli_error($link));

//get information
$field = $_POST['field'] ;
$find = $_POST['find'] ;
$searching = $_POST['searching'] ;

//once submitted  
if ($searching =="yes") { 
    echo "<h2>Results</h2><p>"; 
 
    //search database 
    $data = mysqli_query("SELECT * FROM characters WHERE $field LIKE'%$find%'"); 
 
    //display the results 
    while($result = mysqli_fetch_array( $data )) { 
        echo "<div class='result'><b>";
        echo $result['first_name']; 
        echo "</b><br/>"; 
        echo $result['surname']; 
        echo "<br/>"; 
        echo $result['address']; 
        echo "<br/>"; 
        echo $result['phonenumber']; 
        echo "<br/>"; 
        echo "</div>"; 
    } 
 
    //number of results or error 
    $anymatches=mysqli_num_rows($data); 
    if ($anymatches == 0) { 
        echo "Sorry, but we can not find an entry to match your query<br><br>"; 
    } 
 
    //the search term 
    echo "<br><b>Searched For:</b> " .$find; 
} 
?>
    

尝试在字段名称变量周围的查询上使用 '' 也有相同的结果。检查变量的字段名称,它正在其中生成正确的字段。

最佳答案

在某些情况下尝试使用“.”供查询。

$data = mysqli_query($link, "SELECT * FROM characters WHERE $field LIKE '%".$find."%'"); 

关于php - 下拉和输入搜索框。不搜索数据库并提取 0 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568794/

相关文章:

php - 这是我的 php 代码,用于查看数据库中的多个图像。但我只能在前端看到一张图像。请帮助我

php - 为什么对象会自动从之前或之后启动的另一个对象继承值?

html - 需要使用 CSS 增加框的宽度,但更改宽度和长度没有效果

mysql - 在mysql中创建关系表

html - 如何在不破坏 % 网格的情况下为每个缩略图网格元素添加一致的边距?

html - 标题/导航问题

带 WHERE 子句的 Mysql LIKE 查询 - (InnoDB)

php - 如何通过php检索存储在数据库中的图像?

php - 组合数组元素

php - 使用 json 中的子句从数据库读取数据