使用PHP和MySQLi进行数据库搜索的多个单词字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PHP和MySQLi进行数据库搜索的多个单词字符串相关的知识,希望对你有一定的参考价值。
在尝试设置联系人数据库时,我正在尝试使用多字词串来搜索人员数据库以缩小搜索结果范围。我有以下代码。我的问题是将表单输入字符串的结果转换为数组并将其插入到$ sql SELECT编码中,以便它针对每一列检查每个单词。这样做的原因是,在进行搜索时,您可以输入“Joe Bloggs New York”或“New York Joe Bloggs”并获得相同的结果。
<?php
// **My String collection and conversion to an array**
// Get Form String
$input = $_POST['input'];
// Split String into an Array
$input = preg_split("/[\\/\s,]+/", $input);
// Checking That We Now Have An Array
print_r($input);
// Loop Through Array Values
for ($i = 0; $i < count($input); $i++) {
// Checking Array Output
echo '<br />';
echo $input[$i];
echo '<br />';
}
// **My database query**
// Connect To Database
require_once("connect.php");
// Query The Database
$sql="SELECT * FROM contact WHERE name LIKE '%$input[$i]%' AND lastName LIKE '%$input[$i]%' AND area LIKE '%$input[$i]%' ORDER BY name";
if ($result=mysqli_query($con,$sql))
{
// Fetch one and one row
while ($row=mysqli_fetch_row($result))
{
echo "<h2><u>$row[1]</u></h2><br />";
echo "<img src='img/$row[5]' style='width:300px; height: auto;'/>";
echo "<h3>Name - $row[1] $row[2]</h3>";
echo "<h3>Phone - $row[3]</h3>";
echo "<h3>Email - $row[4]</h3>";
echo "<br /><br />";
}
// Free result set
mysqli_free_result($result);
} else {
echo "No Results";
}
// Close Database Connection
mysqli_close($con);
?>
<h1>Contacts</h1>
<form method="post" action="search.php">
<table>
<tr>
<td>
<input type="text" name="input" size="30" maxlength="50"/>
</td>
<td>
<input type="submit" name="SEARCH" value="Search"/>
</td>
</tr>
</table>
</form>
如果我可以请求帮助将两段代码放在一起,以便它接受字符串,将其转换为数组,然后只给我从Joe Bloggs的数据库返回,我住在纽约,我将非常感激。
答案
您可以尝试在查询中将AND更改为OR,否则您正在查询生活在john中的john john ...
以上是关于使用PHP和MySQLi进行数据库搜索的多个单词字符串的主要内容,如果未能解决你的问题,请参考以下文章