вставить значения из флажка в таблицу, используя php + mysqli - PullRequest
0 голосов
/ 11 августа 2009

У меня есть 3 таблицы (актеры, категории, actor_cats) в моей базе данных.

Я использую форму для вставки новой информации в базу данных (mysql). Большая часть информации попадает в таблицу актеров. Но в метке «категории» у меня есть тип ввода флажка, с 3 полями, которые я получаю из таблицы категорий [действие (id1), комедия (id2), драма (id3)]. Я хочу вставить эту информацию в мою таблицу actor_cats. То, что я хочу сделать, это создать нового актера в таблице актеров, а также вставить флажок выбора (может быть все 3 варианта) в таблицеctors_cats. Эта таблица в качестве идентификатора актера и идентификатора категории, так что я хотел бы что-то вроде этого:

Таблица actor_cats

строка 1 | актерид (1) | categoryid (1)

строка 2 | актерид (1) | categoryid (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; ?>

Надеюсь, это понятно! Спасибо всем ребятам за помощь!

Ответы [ 2 ]

0 голосов
/ 11 августа 2009
$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)");
0 голосов
/ 11 августа 2009

Вы присваиваете флажкам все одинаковый атрибут name и устанавливаете атрибут value в качестве идентификатора категории. Затем вы вставляете актера и получаете его идентификатор с $mysqli->insert_id. Затем вы выполняете другой запрос, чтобы вставить строку в таблицу actor_cats с идентификатором актера и идентификатором категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...