ช่วยดูโค้ดให้ด้วยครับเกี่ยวกับการเพิ่มข้อมูลหลายๆรายการ
สืบเนื่องจากลิงค์นี้ https://www.thaicreate.com/php/php-mysql-add-insert-multiple-record.html
เป็นการเพิ่มข้อมูลทีละหลายๆแถว ผมเลยเอามาปรับใช้กับงานของผม
หน้าเพิ่มข้อมูล testex.php
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<body>
<? include('config.php'); ?>
<form action="ex-add-save-test.php" name="frmAdd" method="post">
<p> จำนวนข้อสอบ :
<select name="menu1" onchange="MM_jumpMenu('parent',this,0)">
<?
for($i=1;$i<=50;$i++)
{
if($_GET["Line"] == $i)
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$_SERVER["PHP_SELF"];?>?Line=<?=$i;?>" <?=$sel;?>>
<?=$i;?>
</option>
<?
}
?>
</select>
</p>
<table width="80%" align="center">
<tr>
<th width="13%" align="center" valign="middle" scope="col"> </th>
<td colspan="3" align="center" valign="middle" scope="col"><div align="left"> รหัสข้อสอบ
<input name="id" type="text" id="id" size="10" />
ข้อสอบวิชา
<select name="co" id="co">
<option value="">
<เลือกรายวิชา>
</option>
<?
$sqlco = "select * from courses";
$resultco = mysql_query($sqlco) or die (mysql_error());
while($rowco = mysql_fetch_array($resultco)){
?>
<option value="<?=$rowco[c_id];?>">
<?=$rowco[c_name];?>
</option>
<?
}
?>
</select>
</div></td>
</tr>
<?
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td align="center" valign="middle" scope="col"> </td>
<td width="1%" align="left" valign="top" scope="col"><label></label> </td>
<td width="49%" align="left" valign="top" scope="col">ข้อที่
<label>
<input name="questionnum<?=$i;?>" type="text" id="questionnum" value="<?=$i;?>" size="3" />
</label></td>
<td width="37%" align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col">คำถาม </td>
<td colspan="2" align="left" valign="top" scope="col"><textarea name="question<?=$i;?>" cols="30" rows="3" id="question"></textarea></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col">ตัวเลือก</td>
<td align="left" valign="top" scope="col">ก.
<label></label></td>
<td align="left" valign="top" scope="col"><input type="text" name="a<?=$i;?>" id="a" /></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col">ข.
<label></label></td>
<td align="left" valign="top" scope="col"><input type="text" name="b<?=$i;?>" id="b" /></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col">ค.
<label></label></td>
<td align="left" valign="top" scope="col"><input type="text" name="c<?=$i;?>" id="c" /></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col">ง.
<label></label></td>
<td align="left" valign="top" scope="col"><input type="text" name="d<?=$i;?>" id="d" /></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col">เฉลย
<label>
<select name="answer" id="answer">
<option value="">เลือกคำตอบที่ถูก</option>
<option value="1">ก</option>
<option value="2">ข</option>
<option value="3">ค</option>
<option value="4">ง</option>
</select>
</label></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col">คะแนน
<label>
<input name="score<?=$i;?>" type="text" id="score" size="5" />
</label></td>
<td align="center" valign="middle" scope="col"> </td>
</tr>
<tr>
<td colspan="4" align="right" valign="top" scope="col"><label>
<div align="left">———————————————————————————— </div>
</label></td>
</tr>
<?
}
?>
<tr>
<td align="right" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col"> </td>
<td align="left" valign="top" scope="col"><input type="submit" name="submit<?=$i;?>" id="submit" value="บันทึก" /></td>
<input type="hidden" name="hdnLine" value="<?=$i;?>">
<td align="center" valign="middle" scope="col"> </td>
</tr>
</table>
</form>
</body>
</html>
<p> </p>
หน้าบันทึกข้อมูล ex-add-save-test.php
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<?
//include('config.php');
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("project2");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST['id'] == "")
{
echo "<script>";
echo "alert('กรุณาใส่รหัสข้อสอบ');";
echo "window.location='testex.php';";
echo "</script>";
}
else if($_POST['id'] != "")
{
$strSQL = "INSERT INTO exam_object ";
$strSQL .="(eo_id,eo_name,eo_questionnum,eo_question,eo_choice1,eo_choice2,eo_choice3,eo_choice4,eo_answer,eo_score,p_id,c_id) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST['id']."','".$_POST['co']."','".$_POST["questionnum$i"]."','".$_POST["question$i"]."' ";
$strSQL .="'".$_POST["a$i"]."','".$_POST["b$i"]."','".$_POST["c$i"]."','".$_POST["d$i"]."' ";
$strSQL .=",'".$_POST['answer']."','".$_POST["score$i"]."','".'1'."' ";
$strSQL .="'".$_POST['co']."') ";
$objQuery = mysql_query($strSQL);
mysql_query($objQuery) or die (mysql_error());
}
}
echo "Save Done. Click <a href='ex-show.php'>here</a> to view.";
mysql_close($objConnect);
?>
</body>
</html>
พอรันดูแล้วมันขึ้นว่า Query was empty เลยงงๆ ช่วยดูให้ทีครับ
ฐานข้อมูลครับ
Tag : PHP
Date :
2011-02-27 18:44:51
By :
thecarbon
View :
1021
Reply :
8
Code (PHP)
$objQuery = mysql_query($strSQL);
echo $strSQL;
ลอง echo ค่า SQL ออกมาดูน่ะครับ ถ้าไม่มีค่าแสดงว่า ตัวแปรที่ส่งมากับการอ่านค่าตัวแปรไม่ถูกต้องครับ
Go to : PHP MySQL Add/Insert Multiple Record
Date :
2011-02-28 14:35:11
By :
webmaster
ลองใส่โค้ดตามที่คุณ mr.win แนะนำแล้วครับค่าที่ได้
ในกรณีที่เพิ่มข้อสอบ 1 ข้อ
INSERT INTO exam_object (eo_id,eo_name,eo_questionnum,eo_question,eo_choice1,eo_choice2,eo_choice3,eo_choice4,eo_answer,eo_score,p_id,c_id) VALUES ('c12','2-1','1','answer' 'a','b','c','d' ,'2','2','1' '2-1') Query was empty
ส่งค่ามาทั้งหมดครับแต่ก็ไม่ยอมบันทึกลงฐานข้อมูล
ในกรณีที่เพิ่มข้อสอบ 2 ข้อ
INSERT INTO exam_object (eo_id,eo_name,eo_questionnum,eo_question,eo_choice1,eo_choice2,eo_choice3,eo_choice4,eo_answer,eo_score,p_id,c_id) VALUES ('c12','2-1','1','2+2=?' '2','3','4','5' ,'2','5','1' '2-1') Query was empty
ส่งค่ามาแค่ข้อสอบข้อที่ 1 ครับ ส่วนข้อ 2 ไม่ส่งมา
มันตกหล่นผิดพลาดตรงไหน ช่วยแนะนำทีครับ
ประวัติการแก้ไข 2011-02-28 20:30:23
Date :
2011-02-28 20:29:10
By :
thecarbon
$strSQL .="'".$_POST['co']."') ";
mysql_query($strSQL) or die (mysql_error());
Date :
2011-02-28 21:40:13
By :
PlaKriM
$strSQL .="'".$_POST['co']."') ";
mysql_query($strSQL) or die (mysql_error()); อันนี้คือยังไงหรอคับ งงๆ
Date :
2011-02-28 21:56:20
By :
thecarbon
ลองแก้ไขตามที่คุณ PlaKriM แนะนำแล้วมันขึ้นอย่างงี้อ่า
Column count doesn't match value count at row 1
INSERT INTO exam_object (eo_id,eo_name,eo_questionnum,eo_question,eo_choice1,eo_choice2,eo_choice3,eo_choice4,eo_answer,eo_score,p_id,c_id) VALUES ('c11','2-1','1','คำถาม ' '1','2','3','4' ,'2','3','1' '2-1')
Date :
2011-03-01 19:58:42
By :
thecarbon
$strSQL = "INSERT INTO exam_object ";
$strSQL .="(eo_id,eo_name,eo_questionnum,eo_question,eo_choice1,eo_choice2,eo_choice3,eo_choice4,eo_answer,eo_score,p_id,c_id) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST['id']."','".$_POST['co']."','".$_POST["questionnum$i"]."','".$_POST["question$i"]."' ";
$strSQL .=", '".$_POST["a$i"]."','".$_POST["b$i"]."','".$_POST["c$i"]."','".$_POST["d$i"]."' ";
$strSQL .=",'".$_POST['answer']."','".$_POST["score$i"]."','".'1'."' ";
$strSQL .="'".$_POST['co']."') ";
Date :
2011-03-01 23:18:12
By :
PlaKriM
*0* ได้แล้วครับผม
แต่ทำไมผมเพิ่มข้อมูล 2 ข้อ แต่ไหงมันมา 3 อะคับ
ดังรูปนี้อะคับ
Date :
2011-03-02 20:09:58
By :
thecarbon
Load balance : Server 01