Поскольку у меня есть несколько «проектов», которые должны содержать много вопросов каждый, у меня есть страница вопросов, на которой я заполняю видеоленту, четыре ответа и четыре списка дроу-вниз, где пользователь может устанавливать точки для каждого ответа.
Однако в базе данных есть две таблицы.
Одна таблица, «вопрос», со столбцами: pid (project-id), qid (question-id) и question_link. Другая таблица «answer_det» имеет следующие столбцы: pid, qid, help, answer и points.
Когда я заполняю и выполняю свою страницу вопросов, я сделал так, чтобы каждый ответ получал идентификатор. В таблице «answer_det» устанавливаются Pid, Aid, ответ и точки. Вот как это выглядит:
Таблица «вопрос», когда я вставляю первый вопрос для первого проекта с Pid = 1:
Теперь я хочу установить qid (question-id). Я не уверен, как это сделать, но я думаю, что у меня должен быть код, который проверяет максимальный qid pid и добавляет 1 к нему, поэтому каждый новый вопрос для того же проекта получает новый qid. Если pid не находится в таблице, тогда qid должен получить значение «1».
Поэтому, если вы посмотрите на первый снимок, qid должен быть 1 на каждой показанной строке, так как все четыре ответа принадлежат одному и тому же вопросу, который является первым для проекта с pid = 1. Поэтому, если я хотел бы добавить вопрос к тому же проекту, он должен выглядеть одинаково, но с qid = 2 и т. Д. Если я затем добавлю новый (первый) вопрос для проекта 2, qid должен начинаться с 1 и так далее. Затем, если я хотел бы добавить новый вопрос еще раз для первого проекта, код должен проверить, что максимальный qid равен 2, где pid равно 1, а затем вставить новый вопрос с ответами, но с qid = 3.
Он должен работать почти так же на столе «вопрос», который вы видите на второй картинке. Когда создается первый вопрос, кроме того, что я описал, должно произойти на «answer_det» -table, я хочу, чтобы первый вопрос для первого проекта (с pid = 1) также имел qid = 1 и ссылку, что I заполнены. Второй вопрос для проекта с pid = 1 должен получить qid = 2. Если я добавлю первый вопрос для нового проекта, тогда он должен быть pid = 2 и qid = 1. Затем, если я хочу задать третий вопрос к первому вопросу, он должен увидеть, что pid = 1 имеет 2 вопроса (qid = 2) и добавляет 1 к, поэтому третьи вопросы выглядят как pid = 1 и qid = 3.
Это код, который у меня есть сейчас, и ничего из него ничего не вставляет в qid ни в одной из двух таблиц.
<?php ini_set('display_errors',1); error_reporting(E_ALL); if(mysqli_connect_errno()) { echo mysqli_connect_error(); } $pid5 = $_POST['pid4']; $video = $_POST['videolink1']; $aid1 = $_POST['a1']; $aid2 = $_POST['a2']; $aid3 = $_POST['a3']; $aid4 = $_POST['a4']; $answ1 = $_POST['ans1']; $answ2 = $_POST['ans2']; $answ3 = $_POST['ans3']; $answ4 = $_POST['ans4']; $point1 = $_POST['pointset1']; $point2 = $_POST['pointset2']; $point3 = $_POST['pointset3']; $point4 = $_POST['pointset4']; $que = "INSERT INTO answer_det VALUES('$pid5','','$aid1','$answ1','$point1');"; $que .= "INSERT INTO answer_det VALUES('$pid5','','$aid2','$answ2','$point2');"; $que .= "INSERT INTO answer_det VALUES('$pid5','','$aid3','$answ3','$point3');"; $que .= "INSERT INTO answer_det VALUES('$pid5','','$aid4','$answ4','$point4');"; $que .= "INSERT INTO question VALUES('$pid5','','$video');"; $run = mysqli_multi_query($mysqli,$que); if($run) { echo "<br>Information stored successfully"; } else { echo mysql_error(); } ?>