php - 在MySQL中,如何使用PHP分别复制同一张表中的两个表的行?

标签 php mysql

我有两个表 questionsanswers,我想使用 PHP 将每个表的行复制到同一个表中。表的结构如下:

表:问题

enter image description here

表:答案

enter image description here

目前我正在使用以下代码,但它不起作用:

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_idanswers表的ans_id主键 并且是自动递增,其中 answersques_idquestionsques_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/

相关文章:

php - 如何修复 PHP 错误 : Unable to get local issuer certificate?

php - 所有测试均失败并出现 PHP fatal error : cannot redeclare class

mysql - 记录难以辨认的文件

php - 如何使用php分页中的where条件?

php - 简单的 WordPress "wp_head"操作 Hook

PHP:变量后的双方括号?

javascript - 检查移动网站的小分辨率

不返回具有多个条目的 id 的 mysql 查询

php - 按日期对来自不同 MySQL 表的内容进行排序

mysql - WooCommerce 的类别和子类别如何保存在数据库中?