我有一个搜索表单,可以帮助用户从数据库中搜索任何内容。
表的视图是(表名=菜单)
id dish
1 ABC
2 CDE
3 EFG
4 CDF
目前,当用户输入单词(例如ABC)然后使用表单执行搜索时,我得到了所需的结果,但我希望稍微更改此功能,
我希望如果用户输入第一个字母,例如:C,那么表格中包含字母C的所有单词都应该显示,
然后,如果他输入例如:CD,则应该显示所有具有CD的单词。任何人都可以告诉我该怎么做
包含搜索表单的index.php页面代码:
<script>
$(document).ready(function()
{
$('#form').on('submit', function(e)
{
e.preventDefault();
$.ajax({
url: 't_searchmenu.php',
type: 'POST',
dataType: 'html',
data: {text:$('#textbox').val()},
success: function(response) {
$('#prod_search').html(response);
}
});
});
});
</script>
<form class="pull-right" style="width:100%;" id="form" >
<input type="text" id="textbox" name="textbox" class="search-query" placeholder="Search" style="width:80%;" />
<button type="submit" value="submit" id="generate2" class="btn btn-primary">Find</button>
</form>
t_searchmenu.php页面上的代码
$t = $_POST['text'];
$sql = " SELECT * from menu where dish='" . $t . "'";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
//print the result
}
}
答案 0 :(得分:1)
你可以这样查询:
$sql=" SELECT * from menu where dish like '%".$t."%'";
答案 1 :(得分:1)
您可以使用%
wildcard。它匹配0个或更多字符。例如,C%
将匹配CDE
,CEF
,依此类推。 CD%
将与CDE
,CDF
等匹配:
$sql="SELECT * FROM menu WHERE dish LIKE '$t%'";
答案 2 :(得分:1)
试试这个
SELECT * from tableName
WHERE columnName LIKE '%".$t."%'";