HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //proc/thread-self/cwd/personality-test/test_generator_questions.php
<?php
include_once '../wp-config.php';
function personalityTest($user_id, $exam_id, $test_type, $medium_id, $asign_ref_id, $class_id)
{
    global $wpdb;
    $PSY_SP_QUESTION = $wpdb->prefix . PSY_SP_QUESTION;
    $PSY_EXAMS = $wpdb->prefix . PSY_EXAMS;
    $PSY_SP_EXAM_QUESTION_LINKAGE = $wpdb->prefix . PSY_SP_EXAM_QUESTION_LINKAGE;
    $PSY_TEST_GEN_TEST_TAKEN = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN;
    $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER;

    $examDetailsQuery =  "SELECT repeat_count,subject_choice,total_no_of_questions_in_exam from $PSY_EXAMS where exam_category_id='$exam_id'";
    $examData = $wpdb->get_row($examDetailsQuery);
    $repeatCount = $examData->repeat_count;

    /**subject choice algorithm end** */
    $getSubjects = $wpdb->get_results("SELECT tec.exam_category_id from $PSY_EXAMS as tec where tec.parent_id = '$exam_id'");

    /*******find parent topics of exam and question_id*** */
    $getAllChildQuery = "SELECT qc.question_id,qc.question_group, sale_tmp.*, sq.question_id as med1,sq.correct_answer FROM $PSY_SP_EXAM_QUESTION_LINKAGE as qc INNER JOIN (
		select
		CASE WHEN tec3.parent_id is not null THEN tec3.exam_category_id
		WHEN tec2.parent_id is not  null THEN tec2.exam_category_id
		WHEN tec1.parent_id is not null THEN tec1.exam_category_id
		WHEN tec.parent_id is not null THEN tec.exam_category_id
		ELSE null END AS child_catid,

		CASE WHEN tec3.parent_id is not null THEN tec3.category_name
		WHEN tec2.parent_id is not  null THEN tec2.category_name
		WHEN tec1.parent_id is not null THEN tec1.category_name
		WHEN tec.parent_id is not null THEN tec.category_name
		ELSE null END AS child_name,

		CASE WHEN tec3.parent_id is not null THEN tec3.no_of_questions_to_display
		WHEN tec2.parent_id is not  null THEN tec2.no_of_questions_to_display
		WHEN tec1.parent_id is not null THEN tec1.no_of_questions_to_display
		WHEN tec.parent_id is not null THEN tec.no_of_questions_to_display
		ELSE null END AS child_ques,

		CASE WHEN tec3.parent_id is not null THEN tec3.display_order
		WHEN tec2.parent_id is not  null THEN tec2.display_order
		WHEN tec1.parent_id is not null THEN tec1.display_order
		WHEN tec.parent_id is not null THEN tec.display_order
		ELSE null END AS child_disp, tec.exam_category_id as subject_id, tec.display_order as subject_order
		from $PSY_EXAMS as tec

		left JOIN $PSY_EXAMS as tec1 On tec1.parent_id = tec.exam_category_id
		left JOIN $PSY_EXAMS as tec2 On tec2.parent_id = tec1.exam_category_id
		left JOIN $PSY_EXAMS as tec3 On tec3.parent_id = tec2.exam_category_id
		left JOIN $PSY_EXAMS as tec4 On tec4.parent_id = tec3.exam_category_id

		where tec.parent_id = '$exam_id' order by tec.display_order, child_disp ) as sale_tmp
		ON (qc.topic_id = sale_tmp.child_catid)
		LEFT JOIN $PSY_SP_QUESTION as sq ON sq.question_id=qc.question_id
		WHERE qc.status='1' order by qc.display_order asc";
    $questionData = $wpdb->get_results($getAllChildQuery, ARRAY_A);
    $arr = array();
    $k = 1;
    $oldCatId = $questionData[0]['child_catid'];
    /*****make array according to total question in parent topics***** */
    for ($i = 0; $i < count($questionData); $i++) {
        if ($questionData[$i]['child_catid'] == $oldCatId) {
            if ($questionData[$i]['child_ques'] >= $k) {
                $arr[] = array("test_question_id" => $questionData[$i]['question_id'], "group_question" => $questionData[$i]['question_group'], "subject_id" => $questionData[$i]['subject_id'], "subject_order" => $questionData[$i]['subject_order'], "module_id" => $questionData[$i]['child_catid'], "module_order" => $questionData[$i]['child_disp'], "module_name" => $questionData[$i]['child_name'], "correct_answer" => $questionData[$i]['correct_answer'], "count" => $questionData[$i]['child_ques']);
                $k++;
            }
        } else {
            $k = 1;
            $questionData[$i]['child_ques'] . '----' . $k;
            if ($questionData[$i]['child_ques'] >= $k) {
                $arr[] = array("test_question_id" => $questionData[$i]['question_id'], "group_question" => $questionData[$i]['question_group'], "subject_id" => $questionData[$i]['subject_id'], "subject_order" => $questionData[$i]['subject_order'], "module_id" => $questionData[$i]['child_catid'], "module_order" => $questionData[$i]['child_disp'], "module_name" => $questionData[$i]['child_name'], "correct_answer" => $questionData[$i]['correct_answer'], "count" => $questionData[$i]['child_ques']);
                $k++;
            }
        }
        $oldCatId = $questionData[$i]['child_catid'];
    }
    // echo $examData->total_no_of_questions_in_exam ."----".count($arr);

    /******check total questions in exam and created array count if same then create test taken id and insert questions**** */
    if ($examData->total_no_of_questions_in_exam == count($arr)) {
        $curDate = date('Y-m-d H:i:s');
        $uniqueCode = md5(uniqid(rand(), true));
        $insertTestQuery = "INSERT INTO $PSY_TEST_GEN_TEST_TAKEN SET reference_id='$asign_ref_id', test_type='$test_type', whitelabel_id='0', class_id='$class_id', user_id='$user_id', exam_category_id='$exam_id', medium_id='$medium_id', total_questions='$examData->total_no_of_questions_in_exam', start_date='$curDate', status='N'";
        $insertTestData = $wpdb->query($insertTestQuery);
        $sp_test_taken_id = $wpdb->insert_id;


        //echo "<pre> Questins " . print_r($arr, true) . "</pre>";
        /*****insert questions*** */
        foreach ($arr as $sq) {

                $testQuesId = $sq['test_question_id'];
                $subjectId = $sq['subject_id'];
                $moduleId = $sq['module_id'];
                $correct_answer = $sq['correct_answer'];
                $insertQuesQuery = "INSERT INTO $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER set test_taken_id='$sp_test_taken_id', test_question_id='$testQuesId', answer='0',correct_answer='$correct_answer', subject_id='$subjectId', module_id='$moduleId', datetime_attempted='$curDate'";
                $wpdb->query($insertQuesQuery);


        }
        $getTestQuestionCount = $wpdb->get_var("SELECT count(test_question_id) from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$sp_test_taken_id' ");
        if ($getTestQuestionCount == $examData->total_no_of_questions_in_exam) {
            return $sp_test_taken_id;
        } else {
            $deleteIfQuesDel = $wpdb->query("DELETE from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$sp_test_taken_id' ");
            $deleteIfTstDel = $wpdb->query("DELETE from $PSY_TEST_GEN_TEST_TAKEN where test_taken_id='$sp_test_taken_id' ");
            return null;
        }
    } else {
        echo "else question count not match with array and total question";
        return null;
    }
}


//echo personalityTest(1, '48305', 'PER', '1', '1');