我是一个业余爱好视频网站,用户可以在其中提交视频网址。一切正常,但现在我希望能够为同一个视频选择多个类别。类别存储在单独的表中。我相信你会从代码中理解:
mysql_query("INSERT INTO videos
(title, source, thumb_large, author, email_by) VALUES('$title', '$video_url', '$thumb_url', '$author', '$email') ") or die(mysql_error());
mysql_query("INSERT INTO videos_categories
(category_id) VALUES('$category_name_id') ") or die(mysql_error());
我想要做的是为相同的视频ID添加另一个类别,表格在AUTO INCREMENT上同时相互同步:
mysql_query("INSERT INTO videos_categories (category_id) VALUES('$category_name_id_two') ") or die(mysql_error());
该变量目前注册为:
$category_name_id = mysql_real_escape_string(htmlspecialchars($_POST['category_id']));
目前通过下拉列表选择(选择名称:category_id),它工作正常。但是,我想将此更改为选择框,因此可以选择多个,或最多3个类别,而不是有3个下拉菜单。
我希望你能帮我解决这个问题,我被困在这里。
编辑: 我想补充一点,有三个表,一个用于检索类别,一个用于存储video_id + category_id,可以使每个视频有多个类别,还有一个用于视频。
谢谢
答案 0 :(得分:0)
因此您需要将选择框更改为:
<select name="category_id[]" multiple="multiple">
<!-- Options -->
</select>
...
在后端,在此查询之后:
mysql_query("INSERT INTO videos
(title, source, thumb_large, author, email_by) VALUES('$title', '$video_url',
'$thumb_url', '$author', '$email') ") or die(mysql_error());
执行:
$video_id = mysql_insert_id();
$categories = $_POST['category_id'];
$values = '';
foreach($categories as $category_id) {
$values .= "('$video_id', '$category_id'),";
}
$values = rtrim($values, ',');
$query = "INSERT INTO videos_categories(video_id,category_id) VALUES $values";
mysql_query($query);
几点建议:
由于不推荐使用mysql_ * apis,请不要使用它们。切换到mysqli。 在使用sql queires之前,请对数据进行验证和清理。