在应用程序中,我有一个选择用户并选择课程ID。我想要做的是为每个选中的用户创建我想在DB(MySQL
)中创建新记录的每个用户
选择课程ID。为了更好地解释这是它应该是什么样子:
DB:
在这种情况下,选择了2个用户和2个课程,因此创建了4个记录:
Date | User_ID | Lesson_ID -----|---------|----------- NOW()|67A62 |12 -----|---------|----------- NOW()|220A0 |12 -----|---------|----------- NOW()|67A62 |8 -----|---------|----------- NOW()|220A0 |8
我的代码:
在我的代码中,它并排浏览列表。因此,列表中的第一个user_id将被分配列表中的第一个lesson_id。而不是我想要的在lesson_id列表 中为每个项目( 我在MySQL DB中存储值的当前 是因为我有一行 如何更改此代码以执行我的要求?我在lesson_id
)分配所有用户(php
)
public function storeClass($attendees, $lesson_iDs) {
$stmt = $this->conn->prepare("INSERT INTO watch (date, user_id, lesson_id) VALUES(NOW(), ?, ?)");
$i = 0;
foreach ($attendees as $index => $attendee) {
$stmt->bind_param("ss", $attendees[$i], $lesson_iDs[$i]);
$i++;
$result = $stmt->execute();
// var_dump($i);
if(!$result){
echo 'Error: ' .$stmt->error;
}
}
$stmt->close();
// result
return $result;
}
代码:$stmt->bind_param("ss", attendees[$i], lesson_iDs[$i]);
php
shape=point
的经验很少,所以我问这么糟糕的问题
答案 0 :(得分:1)
如果我理解你正在尝试做什么,问题不是你的查询,而是循环。如果你想拥有user_id x lesson_id的笛卡尔积,你需要循环中的另一个循环。例如:
foreach ($users as $user_id)
{
foreach ($lessons as $lesson_id)
{
$stmt->bind_param("ss", $user_id, $lesson_id);
$stmt->execute();
}
}