ช่วยด้วยค่ะ value ในค่า POST ไม่เข้า database ค่ะ (multiple record)
คือค่า $_POST['q_quest$i'] และ $_POST['q_ans$i'] ไม่เข้า database ค่ะ นอกนั้นเข้าหมด ตอน <pre> ออกมาดู ค่าก็มานะค่ะ แต่พอจะ insert จริงๆ ค่าไม่เข้าค่ะ ช่วยด้วยยยยยยยยย T_________T
ทำตาม https://www.thaicreate.com/php/php-mysql-add-insert-multiple-record.html หมดทุกอย่างละค่ะ
โค๊ดตามด้านล่างนี่ค่ะ ผิดตรงไหนช่วยบอกด้วยน่ะค้า
Code (PHP)
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if(isset($_POST["q_quest$i"])){
$strSQL = "INSERT INTO question(em_id,q_section,q_category,q_quest,q_ans,q_status) ";
$strSQL .="VALUES ('$em_id','$section','$category','".$_POST['q_quest$i']."','".$_POST['q_ans$i']."','ใช้งาน') ";
$objQuery = mysql_query($strSQL,$conn);
ขอบคุณล่วงหน้าค้า Tag : PHP, HTML/CSS, JavaScript, Ajax, jQuery, CakePHP
ประวัติการแก้ไข 2014-06-19 10:15:15 2014-06-19 11:13:50
Date :
2014-06-19 10:14:13
By :
cutefulllifehoney
View :
926
Reply :
11
มี Error ไม๊ครับ?
Code (PHP)
$objQuery = mysql_query($strSQL,$conn) or die(mysql_error());
หรือไม่ก็ลอง
Code (PHP)
echo $strSQL;
แล้วเอาคำสั่ง sql ที่ได้ไปรันใน phpMyAdmin ดูครับว่าได้ไม๊?
Date :
2014-06-19 10:25:52
By :
arm8957
Code (PHP)
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if(isset($_POST["q_quest$i"])){
$strSQL = "INSERT INTO question(em_id,q_section,q_category,q_quest,q_ans,q_status) ";
$strSQL .="VALUES ('$em_id','$section','$category','".$_POST['q_quest$i']."','".$_POST['q_ans$i']."','ใช้งาน') ";
$objQuery = mysql_query($strSQL,$conn);
// เพิ่มบันทัดข้างล่างครับ เพื่อตรวจสอบ Error โดยการ echo ออกมาดูครับว่า ข้อมูลถูกต้องไหม
if(mysql_errno()){
echo $strSQL,"\n<br />",mysql_error(); exit;
}
if(mysql_affected_rows==0){
echo $strSQL; exit;
}
เห็นปัญหาแล้ว พอใช้ feature PHP ถึงได้เห็น
Code (PHP)
$_POST['q_quest$i']."','".$_POST['q_ans$i'].
แก้เป็น
Code (PHP)
$_POST['q_quest'.$i]."','".$_POST['q_ans'.$i].
ประวัติการแก้ไข 2014-06-19 10:32:50 2014-06-19 10:35:01 2014-06-19 10:35:50
Date :
2014-06-19 10:32:29
By :
Chaidhanan
ตอบความคิดเห็นที่ : 2 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-06-19 10:32:29
รายละเอียดของการตอบ ::
Code (PHP)
view sourceprint?
01.
for($i=1;$i<=$_POST["hdnLine"];$i++)
02.
{
03.
if(isset($_POST["q_quest$i"])){
04.
05.
$strSQL = "INSERT INTO question(em_id,q_section,q_category,q_quest,q_ans,q_status) ";
06.
$strSQL .="VALUES ('$em_id','$section','$category','".$_POST['q_quest$i']."','".$_POST['q_ans$i']."','ใช้งาน') ";
07.
$objQuery = mysql_query($strSQL,$conn);
08.
// เพิ่มบันทัดข้างล่างครับ เพื่อตรวจสอบ Error โดยการ echo ออกมาดูครับว่า ข้อมูลถูกต้องไหม
09.
if(mysql_errno()){
10.
echo $strSQL,"\n<br />",mysql_error(); exit;
11.
}
12.
if(mysql_affected_rows==0){
13.
echo $strSQL; exit;
14.
}
เห็นปัญหาแล้ว พอใช้ feature PHP ถึงได้เห็น
Code (PHP)
1.
$_POST['q_quest$i']."','".$_POST['q_ans$i'].
แก้เป็น
Code (PHP)
1.
$_POST['q_quest'.$i]."','".$_POST['q_ans'.$i].
ได้ละค้า ขอบคุณค้า ^__________________^
Date :
2014-06-19 10:39:41
By :
cutefulllifehoney
พอดีอยากให้ข้อมูลที่เพิ่มในตาราง question มะกี้ เอาค่า id มาเพิ่มในตาราง answer แต่ทำไมค่า id เป็น 1 ตลอดเลยอะค่ะ
โค๊ดด้านล่างนี้ค่ะ ช่วยแก้หน่อยนะค่ะ สุดท้ายแล้วจริง T T
Code (PHP)
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["q_quest$i"] != ""){
$strSQL = "INSERT INTO question(em_id,q_section,q_category,q_quest,q_ans,q_status) ";
$strSQL .="VALUES ('$em_id','$section','$category','".$_POST['q_quest'.$i]."','".$_POST['q_ans'.$i]."','1') ";
$objQuery = mysql_query($strSQL,$conn) or die(mysql_error());
echo $strSQL;
if($objQuery){
$query = "SELECT * FROM question";
$qr = mysql_query($query,$conn) or die (mysql_error());
$row = mysql_fetch_array($qr,$conn);
$q_id = $row['q_id'];
$q_section = $row['q_section'];
$sql = " INSERT INTO answer(a_id,q_id,q_section,a_ans1,a_ans2,a_ans3,a_ans4,a_ans5,a_status) " ;
$sql .= " VALUE('0','$q_id','$q_section','".$_POST['a_ans1'.$i]."','".$_POST['a_ans2'.$i]."',
'".$_POST['a_ans3'.$i]."','".$_POST['a_ans4'.$i]."','".$_POST['a_ans5'.$i]."','1')" ;
$sqlQuery = mysql_query($sql,$conn);
echo $sqlQuery;
Date :
2014-06-19 11:12:32
By :
cutefulllifehoney
เพราะคำสั่งเหล่านี้ครับ
Code (PHP)
$query = "SELECT * FROM question";
$qr = mysql_query($query,$conn) or die (mysql_error());
$row = mysql_fetch_array($qr,$conn);
$q_id = $row['q_id'];
ในบรรทัด $query = "SELECT * FROM question"; หากไม่ได้กำหนดเงื่อนไขในการดึงข้อมูล(WHERE) ไม่กำหนด ORDER BY ข้อมูลที่ได้จะเป็นค่าแรกเสมอ ลองทบทวนความต้องการดูดีๆ ครับ
Date :
2014-06-19 11:21:10
By :
arm8957
แล้วมันจะประมาณไหนค่ะ ช่วยยกตัวอย่างด้วยค่ะ T T
Date :
2014-06-19 11:29:25
By :
cutefulllifehoney
Code (PHP)
if($objQuery){
// $query = "SELECT * FROM question";
// ตรงนี้ไม่ได้มีการกำหนด scope result ที่ได้ ก็จะเริ่ม ตั้งแต่ record แรกเสมอครับ
// แก้เป็น
$query = "SELECT max(q_id) max_q_id FROM question";
$qr = mysql_query($query,$conn) or die (mysql_error());
$row = mysql_fetch_array($qr,$conn);
$q_id = $row['max_q_id'];
แต่ควรใช้ code นี้มากกว่าครับ
Code (PHP)
if($objQuery){
$q_id = mysql_insert_id();// mysql_จะส่งค่า autoincrement ของการ insert ครั้งสุดท้ายมาให้
$q_section=$section; // ตรงนี้ ค่าเหมือนกับตอน insert question ก็ไม่จำเป็นต้อง query ใหม่
ประวัติการแก้ไข 2014-06-19 11:45:19
Date :
2014-06-19 11:33:53
By :
Chaidhanan
เอาคำสั่งนี้ ไว้นอก loop for ครับ
Code (PHP)
echo "<script>alert('บันทึกข้อมูลเรียบร้อยแล้ว' );
window.location='AddExam_BU2.php';</script>"; exit();
Date :
2014-06-19 11:51:16
By :
arm8957
ได้แล้วค่ะ เป็นเพราะใส่ exit(); นี่เอง
Date :
2014-06-19 11:53:33
By :
cutefulllifehoney
Load balance : Server 01