我有两个表 questions
和 answers
,我想使用 PHP 将每个表的行复制到同一个表中。表的结构如下:
表:问题
表:答案
目前我正在使用以下代码,但它不起作用:
include "db.php";
$exam_title=$_POST["title_id"];
$exam_id=$_POST["exam"];
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "insert into questions(question, option_type, media_type, media_link, exam_id)
select question, option_type, media_type, media_link, '$exam_id' from questions where exam_id = ". $exam_id;
$sql2 = "insert into answers(answer, ques_id, right_ans)
select a.answer, q.ques_id, a.right_ans from questions q, answers a where q.exam_id = ". $exam_id;
if ($conn->query($sql) === TRUE) {
echo "done";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
if ($conn->query($sql2) === TRUE) {
echo "done2";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
问题是questions
表的ques_id
和answers
表的ans_id
是主键
并且是自动递增
,其中 answers
的 ques_id
和 questions
的 ques_id
> 有关系。
最佳答案
如果您只是简单地复制具有 1:1 关系的两个表中的记录。而“问题”显然是主人,你有新问题,所有显示现有答案(即两个问题显示只有一个答案)和“悬而未决”的答案没有任何问题。
从我的角度来看,有一个问题两次只有一个答案就是我所说的“规范化”,但无论如何,如果你想复制整个集合,你需要(伪代码)
Get all fields for all questions and their related answers (simple join)
for each row
insert new question row
get last insert id
insert answer, set answer.ques_id to last insert id of question
关于php - 在MySQL中,如何使用PHP分别复制同一张表中的两个表的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34461144/