在尝试设置联系人数据库时,我尝试使用多字词串搜索人员数据库以缩小搜索结果范围。 我有以下代码。我的问题是将表单输入字符串的结果转换为数组并将其插入到$ sql SELECT编码中,以便它针对每一列检查每个单词。这样做的原因是,在进行搜索时,您可以输入' Joe Bloggs New York'或者'纽约乔博格斯'得到相同的结果。
<?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数据库中的返回I& #39;非常感激。
答案 0 :(得分:0)
您可以尝试在查询中将AND更改为OR,否则您正在查询生活在john中的john john ...