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