ช่วยดูให้หน่อยครับ ทำไมผม insert แบบ Multiple Record ไม่ได้ครับไม่รู้ติดตรงไหน ผมดัดแปลงจากตัวอย่างในเว็บ
รูปฟอร์ม
โค๊ด save ผมต้องการเซฟแค่ 12 แถวแค่นั้น ผมดัดแปลงจาก PHP MySQL Add/Insert Multiple Record
ผมเอาที่ให้เลือกจำนวนแถวจาก List ออก ใส่แบบ manual 10 แถวเลยครับ
Code (PHP)
<?
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$strSQL = "INSERT INTO empfund ";
$strSQL .="(empfund_id,CITIZEN_ID,fund_month,fund_year,debit_value) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["id$i"]."','".$_POST["fund_m$i"]."', ";
$strSQL .=",'".$_POST["fund_year$i"]."','".$_POST["debit_value$i"]."') ";
$objQuery = mysql_query($strSQL);
}
if($objQuery)
{
echo "<script>alert('บันทึกข้อมูลเรียบร้อยแล้ว');</script><br>";
echo "<script>window.close();</script><br>";
}else{
echo "ไม่สามารถส่งข้อมูลได้";
}
?>
Tag : PHP, MySQL, JavaScript
ประวัติการแก้ไข 2012-08-10 17:12:44
Date :
2012-08-10 17:10:13
By :
compiak
View :
1174
Reply :
3
ขึ้น error ว่าอะไรครับ
........................
วิธีเช็คว่าผิดตรงไหน ให้ทำการใส่ comment ดังนี้แล้วเพิ่มตัวเช็ค
for()
{
...
...
//$objQuery = mysql_query($strSQL);
echo $strSQL;
}
คุณจะเห็นประโยค INSERT INTO... เท่ากับจำนวน $i ที่วิ่งไป คุณก็ดูเอาเองว่า มันผิดตรงไหน
Date :
2012-08-10 18:04:47
By :
tatb
มี 2 ประเด็นครับ คือ
1 $_POST["hdnLine"] มีค่าเท่ากับเท่าไหร่ ใช่ที่ต้องการหรือไม่ ให้ลอง echo ออกมาดู
2 $_POST ที่ใช้เป็น VALUES แต่ละตัวนั้นมีค่าเป็นไปอย่างที่มันควรจะเป็นหรือเปล่า
วิธีทดสอบนะครับ ให้ลอง Comment บันทัดที่ 10 ก่อน แล้วเคาะลงมาสัก 1 บันทัด แล้ว echo $strSQL ออกมาดูก่อน
ซึ่งถ้ามันถูกต้องตามที่ต้องการ จะต้องเห็น SQL ที่ถูกต้อง แสดงออกมาตามจำนวนของ $_POST["hdnLine"] และ $_POST ที่เก็บ VALUES ต่างๆจะต้องถูกต้องด้วยครับ
Date :
2012-08-10 18:06:46
By :
Songkram
เดี๋ยวผมจะลองดูครับ ขอบคุณมาก ทุกๆ คอมเม้นครับ
Date :
2012-08-10 22:36:00
By :
compiak
Load balance : Server 03