我的数据库中有3个表(actor,categories,actor_cats)。
我正在使用表单在数据库中插入新信息(mysql)。大多数信息都进入了参与者表。 但是在标签“类别”中,我有一个复选框输入类型,我从类别表[action(id1),comedy(id2),drama(id3)]获得3个字段。我想在actor_cats表中插入此信息。 我想要做的是在actors表中创建一个新的actor,并在actors_cats表中插入复选框选项(可能是所有3个选项)。这个表作为actor id和类别id,所以我想要的是这样的:
表actor_cats
第1行| actorid(1)| categoriesid(1)
第2行| actorid(1)| categoriesid(2)
作为一个例子...
我如何使用mysqli实现这一目标?
提前感谢!
我仍然无法写入actor_cats表。这就是我正在做的事情:
//插入新演员后
$jid = $mysql->insert_id;
if (isset($_POST['cats'])) {
$cats = $_POST['cats'];
} else {
$cats = array();
}
$numCats = 0;
foreach ($cats as $catID) {
$cats_sql = "INSERT INTO actor_cats VALUES(?,?)";
$stmt = $mysql->stmt_init();
if ($stmt->prepare($cats_sql)) {
$stmt->bind_param('ii', $jid, $catID);
$stmt->execute();
if ($ok) {
$numCats = $numCats + 1;
} else {
echo "<p>Error inserting $catID: " .
$mysql->error . '</p>';
}
}
<?php
else:
$cats = 'SELECT id, type FROM categories';
$stmt = $mysql->prepare($cats);
$stmt->execute();
$stmt->bind_result($catid,$cattype);
&GT;
在复选框区域的表单中,我获取了我的类别表并获取了值,因此当我提交表单时,我的选择将被插入
//excerpt from form
<label>Category:</label><br />
<?php while($row = $stmt->fetch()) : ?>
<input type="checkbox" name="cats" value="<?php echo $catid; ?>" /><?php echo $cattype; ?>
<br /><br /> <?php endwhile; ?>
希望这很清楚! 感谢所有人的帮助!
答案 0 :(得分:0)
您可以为复选框指定所有相同的名称属性,并将value属性设置为类别的ID。然后插入actor并使用$mysqli->insert_id
获取其id。然后执行另一个查询,在actor_cats表中插入一行,其中包含actor的id和类别的id。
答案 1 :(得分:0)
$mysqli = new mysqli("host", "user", "password", "db");
$mysqli->query("INSERT INTO actors ..."); // your query to insert new actor
$id = $mysqli->insert_id;
// replace 1 with the category id
$mysqli->query("INSERT INTO actor_cats (actor_id, cat_id) VALUES ($id, 1)");