2009-08-11 2 views
0

데이터베이스에 3 개의 테이블 (액터, 카테고리, actor_cats)이 있습니다.php + mysqli를 사용하여 테이블의 체크 박스에서 값을 삽입하십시오.

저는 양식을 사용하여 데이터베이스 (mysql)에 새로운 정보를 삽입하고 있습니다. 대부분의 정보는 액터 테이블에 저장됩니다. 하지만 레이블 "categories"에는 category 테이블 [action (id1), comedy (id2), drama (id3)]에서 가져온 3 개의 필드가있는 checkbox 입력 유형이 있습니다. 내 actor_cats 테이블에이 정보를 삽입하고 싶습니다. 내가 뭘하고 싶은 건 배우 테이블에 새 배우를 만들고, actors_cats 테이블에 체크 상자 선택 (세 가지 옵션 모두 가능)을 삽입하는 것입니다. 배우 ID와 카테고리 ID, 그래서 나는 이런 식으로 뭔가 될 것 원하는대로이 테이블 :

행 1 actor_cats | 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); 

>

그리고 체크 박스 영역 내 양식에

, 난 내 카테고리 테이블을 가져오고 값을 얻을? 양식을 제출하면 선택 항목이 삽입됩니다.

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

확인란을 모두 같은 이름 속성에 지정하고 값 속성을 카테고리의 ID로 설정합니다. 그런 다음 액터를 삽입하고 $mysqli->insert_id으로 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)"); 
관련 문제