我有两个表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();
问题是ques_id
对的questions
表ans_id
的answers
表primary key
,是auto increment
在那里ques_id
的answers
和ques_id
的questions
有关系。
如果您只是复制两个表之间具有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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句