データベースに 3 つのテーブル (actors、category、actor_cats) があります。
データベース(mysql)に新しい情報を挿入するためにフォームを使用しています。ほとんどの情報はアクター テーブルに入ります。しかし、ラベル「カテゴリ」には、チェックボックスの入力タイプがあり、カテゴリテーブルから取得した 3 つのフィールド [アクション (id1)、コメディ (id2)、ドラマ (id3)] があります。この情報を自分のactor_cats テーブルに挿入したいと考えています。私がやりたいことは、actors テーブルに新しいアクターを作成し、actors_cats テーブルにチェックボックスの選択 (3 つのオプションすべてである可能性があります) を挿入することです。アクターIDとカテゴリIDとしてのこのテーブルなので、私が望むのは次のようなものです:
テーブルactor_cats
行 1 | アクターイド (1) | カテゴリ (1)
行 2 | アクターイド (1) | カテゴリーid (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);
?>
チェックボックス領域のフォームで、カテゴリテーブルをフェッチして値を取得するため、フォームを送信すると、選択が挿入されます
//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; ?>
これが明確であることを願っています!みんな助けてくれてありがとう!