PHP MySQL搜索脚本-仅匹配一些字母
在我的网站上有搜索功能。问题是: 如果我写Litmanova这个词,它什么也找不到,因为mysql中有litmanovej、litman等词 如果我将litmanova放入搜索输入中,是否有任何方法可以找到例如结果litmanovej? 多谢各位PHP MySQL搜索脚本-仅匹配一些字母,php,mysql,search,Php,Mysql,Search,在我的网站上有搜索功能。问题是: 如果我写Litmanova这个词,它什么也找不到,因为mysql中有litmanovej、litman等词 如果我将litmanova放入搜索输入中,是否有任何方法可以找到例如结果litmanovej? 多谢各位 function search() { echo "<div class='col-md-12' style='margin-top:20px;'>"; echo "<div id='custom-search-input'&
function search() {
echo "<div class='col-md-12' style='margin-top:20px;'>";
echo "<div id='custom-search-input'>";
echo "<form action='vyhladavanie' method='GET'>";
echo "<div class='input-group col-md-12'>";
echo "<input type='text' class='form-control input-lg' name='query' placeholder='Napíšte slovo, ktoré hľadáte...' />";
echo "<span class='input-group-btn'>";
echo "<button class='btn btn-info btn-lg' type='submit' style='background:#cf585b;border:1px #cf585b solid;'>";
echo "<i class='glyphicon glyphicon-search'></i>";
echo "</button>";
echo "</span>";
echo "</div>";
echo "</form>";
echo "</div>";
echo "</div>";
}
function showVideoResults() {
global $conn;
$query = $_GET['query'];
$query = "SELECT * FROM videos WHERE video_title LIKE '%".$query."%' OR video_description LIKE '%".$query."%' ORDER by video_date DESC";
$result = mysqli_query($conn, $query);
if (!$result) {
die("Problém" . mysqli_error($conn));
}
while ($row = mysqli_fetch_array($result)) {
$video_id = $row['video_id'];
$video_title = $row['video_title'];
$video_date = $row['video_date'];
$video_description = $row['video_description'];
$video_link = $row['video_link'];
$video_category = $row['video_category'];
$video_url = $row['video_url'];
echo "<div class='col-md-4'>";
echo "<a href='video/$video_id-$video_url'>";
echo "<h3 class='meta_title'>$video_title</h3></a>";
echo "</div>";
}
}
函数搜索(){
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
}
函数showVideoResults(){
全球$conn;
$query=$\u GET['query'];
$query=“从视频中选择*,其中视频标题为“%”,$query.“%”或视频描述为“%”,$query.“%”按视频排序\u日期描述”;
$result=mysqli\u查询($conn,$query);
如果(!$result){
die(“Problém”.mysqli_error($conn));
}
while($row=mysqli\u fetch\u数组($result)){
$video_id=$row['video_id'];
$video_title=$row['video_title'];
$video_date=$row['video_date'];
$video_description=$row['video_description'];
$video_link=$row['video_link'];
$video_category=$row['video_category'];
$video_url=$row['video_url'];
回声“;
回声“;
回声“;
}
}
恐怕没有“简单”的方法可以做到这一点,但你可以随便玩玩
这里有一些很好的例子。您不必对代码做任何更改。您需要更改数据库表列的定义 您需要将COLLATE UTF8\u GENERAL\u CI添加到列的定义中
ALTER TABLE videos
MODIFY COLUMN video_title VARCHAR(…) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;
我能想到的最接近的是LIKE语句,它允许简单的模式匹配: