2009-08-11 11 views
0

私は3つのテーブル(俳優、カテゴリ、actor_cats)をデータベースに持っています。php + mysqliを使用してテーブルのチェックボックスから値を挿入します

私はデータベース(mysql)に新しい情報を挿入するためにフォームを使用しています。ほとんどの情報はアクターテーブルに入ります。 しかし、 "categories"というラベルでは、カテゴリーテーブル[action(id1)、comedy(id2)、drama(id3)]から3つのフィールドを持つチェックボックス入力タイプがあります。この情報を私のactor_catsテーブルに挿入したいと思います。 私がしたいことは、actorsテーブルに新しいアクタを作成し、actors_catsテーブルにチェックボックスの選択肢(3つのオプションすべてがあります)を挿入することです。俳優のIDとカテゴリID、そう私はこのようなものになるだろうしたいなど、この表:

表は

行1をactor_cats |アクロイド(1)| categoriesid(1)

行2 |アクロイド(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); 

>

チェックボックスエリアでの私の形で

、私は私のカテゴリテーブルを取得し、値を取得します?ので、フォームを提出すると、私の選択が挿入されます

//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

チェックボックスにはすべて同じname属性を指定し、value属性にはそのカテゴリのidを設定します。次に、アクターを挿入し、そのIDを$mysqli->insert_idで取得します。次に、別のクエリを実行して、actor_catsテーブルにアクターのIDとカテゴリのIDを含む行を挿入します。

+0

$ mysqli-> insert_id'はプロパティであり、メソッドではありません。 – RaYell

+0

私はそれを修正しました。 :-) – eWolf

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)"); 
関連する問題