Добрый день,
У меня есть этот foreach l oop, одно значение переменной (p_id) было присвоено lastInsertId () предыдущей вставки из другой таблицы. Допустим, у меня есть две таблицы, table_a для списка людей и table_b для списка книг, которыми они владеют.
p_id – is the id of the person from table_a
b_title – is the title of the book
b_genre is the genre of the book
Допустим, я добавил нового человека в table_a, его зовут Джерри и его ID или p_id - 333. Так как Джерри является последним человеком, включенным в список, его p_id, равный 333, теперь является lastInsertId (). Затем, скажем, Джерри принадлежит две книги, которые я сейчас запишу в table_b, который является списком книг, принадлежащих человеку.
Вот код того, как я буду вставлять название и жанр книги с помощью динамического c поля ввода / удаления.
$query_1 = “some_mysql_code_that_will_insert_data_to_table_a”;
$stmt_1 = $this->conn->prepare($query_1);
if($stmt_1->execute()){
//run this code under
foreach($p_name AS $key => $value) {
$query_2 = "INSERT INTO
table_b
SET
p_id=:p_id,
b_title = :b_title,
b_genre = :b_genre";
$stmt _2= $this->conn->prepare($query);
$p_id=$this->conn->lastInsertId();
$b_title=$value;
$b_genre = $b_genre[$key];
$stm_2->bindParam(':p_id', $p_id);
$stm_2t->bindParam(':b_title', $b_title);
$stmr_2->bindParam(':b_genre', $b_genre);
$stmt_2->execute();
}
}
проблема в том, что я могу только вставьте lastInsertId () один раз, идентификатор 333 в столбец p_id.
Чтобы помочь вам визуализировать, вот пример table_b.
+--------+---------+---------+---------+
| b_id | p_id | b_title | b_genre |
+--------+---------+---------+---------+
| 1 | 333 | Carrie | Horror |
Теперь проблема заключается в том, когда я вставляю вторые данные или вторая книга, которой владеет Джерри.
Вот что происходит.
+--------+---------+---------+---------+
| b_id | p_id | b_title | b_genre |
+--------+---------+---------+---------+
| 1 | 333 | Carrie | Horror |
+--------+---------+---------+---------+
| 2 | 1 | Dune | Scifi |
Как мне сделать приведенную выше таблицу, выглядеть так, с тем же p_id.
+--------+---------+---------+---------+
| b_id | p_id | b_title | b_genre |
+--------+---------+---------+---------+
| 1 | 333 | Carrie | Horror |
+--------+---------+---------+---------+
| 2 | 333 | Dune | Scifi |
Спасибо.