每种电影类型都有一些复选框。每个复选框(电影类型)都来自数据库,因此每种电影类型都有一个复选框。
<input type='checkbox' name='movieGenre[]' value='Comedy'>Comedy/>
<input type='checkbox' name='movieGenre[]' value='Action'>Action/>
...
用户可以选择1个或多个复选框,然后单击“显示”按钮,应该在其中显示一个表格,其中包含与选中的电影流派相关的电影。
但是,要实现此目的,必须验证选中了哪些复选框,并进行查询以仅显示与所选复选框(电影类型)相关的电影。您知道这需要什么吗?
答案 0 :(得分:0)
为了让您入门,这是一个简单的示例
//...
if ( ! empty ( $_POST['movieGenre'] ) && is_array ( $_POST['movieGenre'] ) )
{
// bind param container
$query = [];
// bind param types, (s)
$binds = '';
// trim and remove possible empty values
$selected = array_filter ( array_map ( 'trim', $_POST['movieGenre'] ) );
// go through the $_POST data
foreach ( $selected AS $genre )
{
// valid data should only contain [a-zA-Z]
if ( ctype_alpha ( $genre ) )
{
// valid data, build up the (OR) clause
$query[] = $genre;
$binds .= 's';
}
}
if ( ! empty ( $query ) )
{
// db connect
// db statement
// db prepare
// db bind
// db execute
// db result
// while ( db fetch )
// db free result
// db close
}
else
{
// error, all $_POST data was invalid
}
}
else
{
// error, nothing selected
}
//...