php - MySql 只过滤一个 id
问题描述
我用mysql过滤流派。但是只有那些有 22 个 id 的过滤器 22,23,24 以那些 22 的形式过滤,但不过滤它们。
示例,我的genre_id 列:22,23,24 不显示过滤器示例,我的genre_id 列:22 显示过滤器。
else if($_POST['lang_id']!='' && $_POST['genre_id']!='')
{
$lang_id=$_POST['lang_id'];
$genre_id=$_POST['genre_id'];
$sql="SELECT tbl_language.`language_name`,tbl_movies.* FROM tbl_movies
LEFT JOIN tbl_language ON tbl_movies.`language_id`= tbl_language.`id`
WHERE tbl_movies.`language_id`='$lang_id' AND FIND_IN_SET(tbl_movies.`genre_id`,$genre_id)
ORDER BY tbl_movies.`id` DESC";
}
else if($_POST['lang_id']=='' && $_POST['genre_id']!='')
{
$genre_id=$_POST['genre_id'];
$sql="SELECT tbl_language.`language_name`,tbl_movies.* FROM tbl_movies
LEFT JOIN tbl_language ON tbl_movies.`language_id`= tbl_language.`id`
WHERE FIND_IN_SET(tbl_movies.`genre_id`,$genre_id)
ORDER BY tbl_movies.`id` DESC";
}
// 我的搜索代码
<div class="search_list" style="padding: 0px 0px 5px;float: left;margin-left: 20px">
<select name="genre_id" class="form-control" style="padding: 5px 10px;height: 40px;">
<option value="">--Genres--</option>
<?php
$qry="SELECT * FROM tbl_genres ORDER BY gid DESC";
$res=mysqli_query($mysqli, $qry) or die(mysqli_error($mysqli));
while ($info=mysqli_fetch_assoc($res)) {
?>
<option value="<?=$info['gid']?>" <?php if(isset($_POST['genre_id']) && $_POST['genre_id']==$info['gid']){ echo 'selected';} ?>><?=$info['genre_name']?></option>
<?php
}
mysqli_free_result($res);
?>
</select>
<button class="btn btn-primary" style="padding: 5px 10px;height: 40px;margin-left: 10px;transform: none !important;"><i class="fa fa-filter"></i> Filtrele</button>
</div>
</div>
解决方案
当使用FIND_IN_SET()
定义是...
FIND_IN_SET(str,strlist)
所以第一个是单个值(22),第二个是列表(22,23,24),你以错误的方式传递参数,所以......
FIND_IN_SET(tbl_movies.`genre_id`,$genre_id)
应该
FIND_IN_SET($genre_id, tbl_movies.`genre_id`)
推荐阅读
- reactjs - React Hooks - useState 用于全局状态管理
- wordpress - WordPress - 添加到钩子的操作在回调列表中消失
- reactjs - 类型“{}”不可分配给类型“IntrinsicAttributes & {}”
- python-3.x - matplotlib 错误:ufunc 循环不支持浮点类型的参数 0,它没有可调用的 rint 方法
- javascript - Mongoose 查询项目
- python - 使用 Python 在 Windows 中禁用查找 NIC 省电选项
- r-plotly - 绘制多个线段时如何在绘图中使用yref =“paper”
- javascript - Angular8 对象未定义?
- salesforce - SAQL:函数计数的类型检查模式应具有以下之一:' 但已收到:
- python - Discord.py:在事件循环由于 bot.close() 而关闭后重新启动事件循环