Query benar, data tidak masuk

gan!, saya var_dump() itu datanya seperti ini,

tapi kok gak masuk database yak? ini kode saya

public function insertAnswer($table, $dataTags = [], $dataSubj = [], $total, $fields = [])
    {
        $column = implode(', ', array_keys($fields));
        $value  = implode(', ', array_values($fields));

        $value    = $this->escape($value);
        for ($x = 0; $x < $total; $x++) {
            $query = "INSERT INTO $table (answer_tags, answer_subject, $column) VALUES ('$dataTags[$x]','$dataSubj[$x]',$value)";
            print_r($query);
            $data = $this->mysqli->query($query);
        }

        if ($data) {
            die();
        } else {
            die('gagal');
        }
    }

hadeuhh,, pusing gan! gak dikasih tau errornya dimana ama komputer T_T

tolong bantuannya gan.

avatar HabibulUmam
@HabibulUmam

59 Kontribusi 10 Poin

Diperbarui 4 tahun yang lalu

Tanggapan

Hasil var dump kayaknya seperti ini harusanya:

INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date'), ('...', '...', '...')

gimana caranya mas ? :D

3 Jawaban:

coba contoh berikut.

mysql

<pre> CREATE TABLE answer ( answer_tags char(1) DEFAULT NULL, answer_subject varchar(255) DEFAULT NULL, quiz_id int(11) DEFAULT NULL, activity_id int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 </pre>

php

<pre> class ABC{ private $mysqli; public function __construct(){ $this-&gt;mysqli=mysqli_connect("localhost","XXXXX","XX","XXXXX"); } public function escape($str){ if (get_magic_quotes_gpc()) { return $str; } else { return mysqli_real_escape_string($this-&gt;mysqli,$str); } } public function insertAnswer($table, $dataTags = [], $dataSubj = [], $total, $fields = []) { $column = implode(', ', array_keys($fields)); $value = implode(', ', array_values($fields));

	$value    = $this-&amp;gt;escape($value);
	for ($x = 0; $x &amp;lt; $total; $x++) {
		$query = &quot;INSERT INTO $table (answer_tags, answer_subject, $column) VALUES (&#039;$dataTags[$x]&#039;,&#039;$dataSubj[$x]&#039;,$value)&quot;;
		print_r($query);    
		$data = $this-&amp;gt;mysqli-&amp;gt;query($query);
	}

	if ($data) {
		die();
	} else {
		die(&#039;gagal&#039;);
	}
}

}

$table="answer"; $dataTags=[ 'A','B','C','D','E' ]; $dataSubj=[ "satu", "dua", "tiga", "empat", "lima" ]; $total=count($dataTags); $fields=[ "quiz_id"=&gt;2, "activity_id"=&gt;1 ];

$abc=new ABC(); $abc-&gt;insertAnswer($table,$dataTags,$dataSubj,$total,$fields); </pre>

avatar 24361
@24361

17 Kontribusi 9 Poin

Dipost 4 tahun yang lalu

Tanggapan

terima kasih sebelumnya, tapi itu juga mirip dengan yang saya lakukan. :D

Hmmm... setiap table "answer" dan "quiz" saya reset / truncate. fungsi kembali normal. apa mungkin karena saat saya debug di bagian "answer", ID "Quiz" yang saya dapatkan dengan mengambil nilai hash dari "quiz" pada table "answer" tidak valid ? *hmmmm <pre> require_once "../Core/init.php";

if (!Session::exists('examygoUser')) { Redirect::to('/examygo/user/login.php'); } if (Session::exists('examygoUser') && $user-&gt;getUser('username', Session::get('examygoUser'))['role'] &lt;= 1) { Redirect::to('/examygo/courses/'); }

$quiz = new Quiz;

$activities = $course-&gt;getActivity('activity_id', $_GET['activity_id']); $course = $course-&gt;getCourse('course_id', $_GET['course_id']);

$cid = $_GET['course_id']; $aid = $_GET['activity_id'];

if (Input::get('submit')) {

$_SESSION[&#039;addquiz&#039;] = $_POST;

//call validation class
$validasi = new Validation;

//rule validasi
// $validasi = $validasi-&amp;gt;check([
//     &#039;course_full_name&#039;  =&amp;gt; [
//         &#039;required&#039;  =&amp;gt;   true,
//         &#039;min&#039;       =&amp;gt;   4,
//         &#039;max&#039;       =&amp;gt;   30,
//         &#039;char&#039;      =&amp;gt;   &#039;/^[a-zA-Z0-9 ]*$/&#039;,
//     ],
//     &#039;course_short_name&#039;  =&amp;gt; [
//         &#039;required&#039;  =&amp;gt;   true,
//         &#039;min&#039;       =&amp;gt;   4,
//         &#039;max&#039;       =&amp;gt;   30,
//         &#039;char&#039;      =&amp;gt;   &#039;/^[a-zA-Z0-9 ]*$/&#039;
//     ]
// ]);

if (Helper::checkToken(Input::get(&#039;csrf&#039;))) {


    if (!isset($_FILES[&#039;audio&#039;][&#039;name&#039;])) {
        //audio
        $nama_audio = $_FILES[&#039;audio&#039;][&#039;name&#039;];
        $asal_audio = $_FILES[&#039;audio&#039;][&#039;tmp_name&#039;];
        $format_audio = $_FILES[&#039;audio&#039;][&#039;type&#039;];
        $size_audio = $_FILES[&#039;audio&#039;][&#039;size&#039;];
        $error_audio = $_FILES[&#039;audio&#039;][&#039;error&#039;];

        $nama_audio = time() . addslashes($nama_audio);
        //validasi audio input
        if ($error_audio == 0) {
            if ($format_audio == &#039;audio/mpeg&#039; || $format_audio == &#039;audio/x-wav&#039;) {
                if ($size_audio &amp;lt; 3000000) {
                    move_uploaded_file($asal, &#039;../Assets/Media/Upload/Audio&#039; . $nama_audio);
                } else {
                    $errors[&#039;inputAudio&#039;] = &quot;maximum audio file size is 3mb&quot;;
                }
            } else {
                $errors[&#039;inputAudio&#039;] = &quot;format that allowed is .mp3 / .wav&quot;;
            }
        } else {
            $errors[&#039;inputAudio&#039;] = &quot;There is an error!&quot;;
        }
    }

    if (!isset($_FILES[&#039;image&#039;][&#039;name&#039;])) {
        //image
        $nama_image = $_FILES[&#039;image&#039;][&#039;name&#039;];
        $asal_image = $_FILES[&#039;image&#039;][&#039;tmp_name&#039;];
        $format_image = $_FILES[&#039;image&#039;][&#039;type&#039;];
        $size_image = $_FILES[&#039;image&#039;][&#039;size&#039;];
        $error_image = $_FILES[&#039;image&#039;][&#039;error&#039;];

        $nama_image = time() . addslashes($nama_image);
        //validasi image input
        if ($error_image == 0) {
            if ($format_image == &#039;image/jpeg&#039; || $format_image == &#039;image/png&#039;) {
                if ($size_image &amp;lt; 3000000) {
                    move_uploaded_file($asal, &#039;../Assets/Media/Upload/Image&#039; . $nama_image);
                } else {
                    $errors[&#039;inputimage&#039;] = &quot;maximum image file size is 3mb&quot;;
                }
            } else {
                $errors[&#039;inputimage&#039;] = &quot;format that allowed is .jpg / .png&quot;;
            }
        } else {
            $errors[&#039;inputimage&#039;] = &quot;There is an error!&quot;;
        }
    }

    if (!isset($hash)) {
        $hash = time();
    } else {
        $hash;
    }

    $quizData = $quiz-&amp;gt;addQuiz([
        &#039;activity_id&#039;   =&amp;gt;  $activities[&#039;activity_id&#039;],
        &#039;course_id&#039;     =&amp;gt;  $course[&#039;course_id&#039;],
        &#039;semester&#039;      =&amp;gt;  Input::get(&#039;semester&#039;),
        &#039;audio&#039;         =&amp;gt;  $nama_audio,
        &#039;image&#039;         =&amp;gt;  $nama_image,
        &#039;question&#039;      =&amp;gt;  Input::get(&#039;question&#039;),
        &#039;answer_key&#039;    =&amp;gt;  Input::get(&#039;answer_key&#039;),
        &#039;hash&#039;          =&amp;gt;  $hash
    ]);
    if ($quizData == true) {
        $quizId = $quiz-&amp;gt;getQuiz(&#039;hash&#039;, $hash)[&#039;quiz_id&#039;];

        $answer_tags = Input::get(&#039;answer_tags&#039;);
        $answer_subject = Input::get(&#039;answer_subject&#039;);
        $total_tags = count($answer_tags);

        $result = $quiz-&amp;gt;addAnswer($answer_tags, $answer_subject, $total_tags, [
            &#039;quiz_id&#039;       =&amp;gt;  $quizId,
            &#039;activity_id&#039;   =&amp;gt;  $activities[&#039;activity_id&#039;]
        ]);
    } else {
        echo &quot;&amp;lt;script&amp;gt;Swal.fire(&#039;Sorry!&#039;, &#039;fail to upload data!&#039;, &#039;error&#039;);&amp;lt;/script&amp;gt;&quot;;
    }
} else {
    Redirect::to(&#039;/examygo/courses/&#039;);
}

} </pre>

avatar HabibulUmam
@HabibulUmam

59 Kontribusi 10 Poin

Dipost 4 tahun yang lalu

Jawaban Terpilih

masalah atau error nya gak akan ke trigger klo sya gak sengaja die() script pada query answer. selamanya script nya jalan terus. mungkin gak akan ada masalah.

dan ini query yang saya betulkan. silahkan buat refrensi klo mau pake multiple insert.

<pre> public function insertAnswer($table, $dataTags = [], $dataSubj = [], $total, $fields = []) { $column = implode(', ', array_keys($fields)); $value = implode(', ', array_values($fields));

    $value    = $this-&amp;gt;escape($value);

    //make a query default template
    $query = &quot;INSERT INTO $table (answer_tags, answer_subject, $column) VALUES &quot;;
    //concat with value which you want to concat with it.


    for ($x = 0; $x &amp;lt; $total; $x++) {
        $query .= &quot;(&#039;$dataTags[$x]&#039;,&#039;$dataSubj[$x]&#039;,$value)&quot;;
        if ($x &amp;lt; $total - 1) {
            $query .= &quot;, &quot;;
        }
    }

    $query = rtrim($query, &#039;,&#039;);
    $data = $this-&amp;gt;mysqli-&amp;gt;query($query);


    if ($data) {
        //echo &quot;&amp;lt;script&amp;gt;Swal.fire(&#039;Good Job!&#039;, &#039;success to upload data!&#039;, &#039;success&#039;);&amp;lt;/script&amp;gt;&quot;;
        Redirect::to(&quot;/examygo/courses/&quot;);
    } else {
        die(&#039;gagal&#039;);
    }
}

</pre>

terima kasih yang sudah mau diskusi disini

avatar HabibulUmam
@HabibulUmam

59 Kontribusi 10 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban