|
|
|
ทำเพิ่ม ลบ แก้ไข อยู่ในหน้าเดียวกัน แต่ส่วนของการแก้ไขข้อมูล แก้ไขไม่ได้ |
|
|
|
|
|
|
|
ทำเพิ่ม ลบ แก้ไข อยู่ในหน้าเดียวกัน จากตัวอย่างนี้ค่ะ
https://www.thaicreate.com/php/php-mysql-add-insert-edit-delete-mysql-same-form.html
แต่ส่วนของการแก้ไขข้อมูล แก้ไขไม่ได้ เกิดจากอะไรค่ะ
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
mysql_query("SET NAMES UTF8");
$objDB = mysql_select_db("db_intern");
//*** Add Condition ***//
if($_POST["hdnCmd"] == "Add")
{
$strSQL = "INSERT INTO score_report ";
$strSQL .="(title_id,ass_report_score,stud_id) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["title_id"]."','".$_POST["ass_report_score"]."','".$_POST["stud_id"]."') ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Save [".mysql_error()."]";
}
}
//*** Update Condition ***//
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE score_report SET ";
$strSQL .="ass_report_score = '".$_POST["ass_report_score"]."' ";
$strSQL .="WHERE stud_id = '".$_POST["stud_id"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
}
//*** Delete Condition ***//
if($_GET["Action"] == "Del")
{
$strSQL = "DELETE FROM score_report ";
$strSQL .="WHERE stud_id = '".$_GET["stud_id"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Delete [".mysql_error()."]";
}
}
$strSQL = "SELECT * FROM score_report, student, business, user_login where score_report.stud_id=student.stud_id and student.bus_id=business.bus_id and student.id=user_login.id";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?=$_SERVER["PHP_SELF"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="858" border="1">
<tr>
<th width="151"> <div align="center">รหัสนักศึกษา</div></th>
<th width="173"> ชื่อ-สกุล</th>
<th width="282"> <div align="center">สถานประกอบการ</div></th>
<th width="88"> <div align="center">คะแนน </div></th>
<th colspan="3"> <div align="center">Edit </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?
if($objResult["stud_id"] == $_GET["stud_id"] and $_GET["Action"] == "Edit")
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?>
<input type="hidden" name="stud_id" id="stud_id" value="<?=$objResult["stud_id"];?>">
</div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><input type="text" name="ass_report_score" size="5" value="<?=$objResult["ass_report_score"];?>"></div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnUpdate" value="Update" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input name="btnAdd" type="button" id="btnCancel" value="Cancel" OnClick="window.location='<?=$_SERVER["PHP_SELF"];?>';">
</div></td>
</tr>
<?
}
else
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?></div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><?=$objResult["ass_report_score"];?></div></td>
<td width="64" align="center"><a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&stud_id=<?=$objResult["stud_id"];?>">Edit</a></td>
<td width="64" align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='<?=$_SERVER["PHP_SELF"];?>?Action=Del&stud_id=<?=$objResult["stud_id"];?>';}">Delete</a></td>
</tr>
<?
}
?>
<?
}
?>
<? $strSQL = "SELECT * FROM title_ass WHERE title_id = '5'";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
?>
<input name="title_id" type="text" id="title_id" value="<?=$objResult["title_id"];?>"/>
<input name="title_full" type="text" id="title_full" value="<?=$objResult["title_full"];?>"/>
<tr>
<td><span class="style9">
<select style="width:150px" name ="stud_id" id="stud_id">
<option value="">---เลือก---</option>
<? include 'connect.php';
$sql = "select * from student, business where student.bus_id=business.bus_id and year(curdate()) = bus_year -543";
$res = mysql_query($sql);
while($data=mysql_fetch_array($res)){
echo " <option value='$data[0]'>$data[0]</option>";
} ?>
</select>
</span></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><input type="text" name="ass_report_score" size="2"></div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnAdd" value="Add" OnClick="frmMain.hdnCmd.value='Add';frmMain.submit();">
</div></td>
</tr>
</table>
</form>
<?
mysql_close($objConnect);
?>
Tag : PHP, HTML/CSS
|
|
|
|
|
|
Date :
2013-09-02 13:36:52 |
By :
LaiLA |
View :
3033 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยาวจังเลยแหะ ต้องใช้วิธีตีกรอบละครับงานนี้
สำหรับคำสั่งแก้ใขข้อมูล UPDATE
1. เช็คว่าคำสั่งใน statement ทำงานได้จริงหรือไม่
Code (PHP)
//*** Update Condition ***//
if($_POST["hdnCmd"] == "Update")
{
echo "อืมฉันรับรู้แล้วว่าต้องการจะอัพเดทข้อมูล";
}
2. เมื่อข้อหนึ่งผ่านแล้ว เช็คว่าตัวแปรรับค่าเข้าหรือยัง
Code (PHP)
//*** Update Condition ***//
if($_POST["hdnCmd"] == "Update")
{
$ass_report_score=$_POST["ass_report_score"];
$stud_id=$_POST["stud_id"];
echo $ass_report_score,$stud_id;
}
3. ถ้าการรับค่าถูกต้องแล้ว ข้อ 1 ข้อ 2 ผ่านแล้ว แน่นอนปัญหานี้มันต้องเกิดที่คำสั่ง SQL ซึ่งตรงนี้ต้องพิจารณาประกอบกับ DB ว่าอะไรที่มันไม่ได้ รูปแบบของข้อมูลหรือเปล่า คีย์หลักซ้ำหรือเปล่า ตัวชี้วัดคีหลักไม่ถูกหรือเปล่า อื่นๆ
|
|
|
|
|
Date :
2013-09-02 13:58:57 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไขแล้วค่ะ พอกดแก้ไขข้อมูล ข้อมูลที่เข้าสู่ DB เป็น 0 ค่ะ เกิดจากอะไรค่ะ
Code (PHP)
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE score_report SET ";
$strSQL .="ass_report_score = '".$_POST["ass_report_score"]."' ";
$strSQL .="WHERE score_report_id = '".$_POST["score_report_id"]."' ";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
}
Code (PHP)
$strSQL = "SELECT * FROM score_report, student, business, user_login where score_report.stud_id=student.stud_id and student.bus_id=business.bus_id and student.id=user_login.id";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<form name="frmMain" method="post" action="<?=$_SERVER["PHP_SELF"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="858" border="1">
<tr>
<th width="151"> <div align="center">รหัสนักศึกษา</div></th>
<th width="173"> ชื่อ-สกุล</th>
<th width="282"> <div align="center">สถานประกอบการ</div></th>
<th width="88"> <div align="center">คะแนน </div></th>
<th colspan="3"> <div align="center">Edit </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?
if($objResult["score_report_id"] == $_GET["score_report_id"] and $_GET["Action"] == "Edit")
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?>
<input type="hidden" name="score_report_id" id="score_report_id" value="<?=$objResult["score_report_id"];?>">
</div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><input type="text" name="ass_report_score" size="5" value="<?=$objResult["ass_report_score"];?>"></div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnUpdate" value="Update" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input name="btnAdd" type="button" id="btnCancel" value="Cancel" OnClick="window.location='<?=$_SERVER["PHP_SELF"];?>';">
</div></td>
</tr>
<?
}
else
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?></div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><?=$objResult["ass_report_score"];?></div></td>
<td width="64" align="center"><a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&score_report_id=<?=$objResult["score_report_id"];?>">Edit</a></td>
<td width="64" align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='<?=$_SERVER["PHP_SELF"];?>?Action=Del&stud_id=<?=$objResult["stud_id"];?>';}">Delete</a></td>
</tr>
<?
}
?>
<?
}
?>
<? $strSQL = "SELECT * FROM title_ass WHERE title_id = '5'";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
?>
<input name="title_id" type="text" id="title_id" value="<?=$objResult["title_id"];?>"/>
<input name="title_full" type="text" id="title_full" value="<?=$objResult["title_full"];?>"/>
<tr>
<td><span class="style9">
<select style="width:150px" name ="stud_id" id="stud_id">
<option value="">---เลือก---</option>
<? include 'connect.php';
$sql = "select * from student, business where student.bus_id=business.bus_id and year(curdate()) = bus_year -543";
$res = mysql_query($sql);
while($data=mysql_fetch_array($res)){
echo " <option value='$data[0]'>$data[0]</option>";
} ?>
</select>
</span></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><input type="text" name="ass_report_score" size="2"></div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnAdd" value="Add" OnClick="frmMain.hdnCmd.value='Add';frmMain.submit();">
</div></td>
</tr>
</table>
</form>
|
|
|
|
|
Date :
2013-09-02 14:36:27 |
By :
LaiLA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัว ass_report_score กับ score_report_id เป็น int ไช่ไหมครับ
ถ้าไช่ผมแนะนำให้ประกาศตัวแปรก่อนเพราะ ส่วนตัวผมไม่นิยมเขียน $_POST ลงในคำสั่งแบบนี้ ลองๆใช้แบบนี้ดูหนะครับ
Code (PHP)
if($_POST["hdnCmd"] == "Update")
{
$ass_report_score=$_POST["ass_report_score"]; // ประกาศให้เป็นระเบียบเรียบร้อย
$score_report_id=$_POST["score_report_id"]; // ประกาศให้เป็นระเบียบเรียบร้อย
$strSQL = "UPDATE score_report SET ";
$strSQL .="ass_report_score ='$ass_report_score'";
$strSQL .="WHERE score_report_id = '$score_report_id'";
$objQuery = mysql_query($strSQL);
if(!$objQuery)
{
echo "Error Update [".mysql_error()."]";
}
}
|
|
|
|
|
Date :
2013-09-02 14:50:15 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กลับไปเช็คการส่งตัวแปรมาเลยครับ . . .แต่ข้างบนผมเขียนไว้แบบนี้ไม่ไช่หรือครับ
Code (PHP)
if($_POST["hdnCmd"] == "Update")
{
$ass_report_score=$_POST["ass_report_score"];
$stud_id=$_POST["stud_id"];
echo $ass_report_score,$stud_id;
}
ต้องไปทำให้มันรับรู้ค่าก่อนนะครับ ไปเช็คฟอร์มส่งค่ามาว่ากล่อง ass_report_score และ stud_id มันส่งค่ามาจริงหรือ เพราะแค่ echo ก็ไม่ออกแล้วจะไปทำ SQL ได้อย่างไร
***ตอนนี้ให้เอาคำสั่ง SQL ออกไปก่อน กอปปี้ไปวางไว้ที่ไหนสักแห่งหนก่อนแล้วเอาโค้ดด้านบนไปลงไว้ก่อน ต้องให้มันรับรู้ก่อนว่าค่าที่ได้มาคืออะไร echo ให้ออกก่อน ค่อยมาลุย SQL ต่อครับ
|
|
|
|
|
Date :
2013-09-02 15:28:47 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอกด แก้ไข แล้วขึ้น eror แบบนี้ค่ะ ม่ายทราบว่าผิดตรงหนาย ค่ะ
---------------------------------------------------------------
โค๊ดในฟอร์มส่วนนั้นค่ะ
---------------------------------------------------------------
Code (PHP)
<form name="frmMain" method="post" action="<?=$_SERVER["PHP_SELF"];?>">
<input type="hidden" name="hdnCmd" value="">
<table width="858" border="1">
<tr>
<th width="151"> <div align="center">รหัสนักศึกษา</div></th>
<th width="173"> ชื่อ-สกุล</th>
<th width="282"> <div align="center">สถานประกอบการ</div></th>
<th width="88"> <div align="center">คะแนน </div></th>
<th colspan="3"> <div align="center">Edit </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<?
if($objResult["score_report_id"] == $_GET["score_report_id"] and $_GET["Action"] == "Edit")
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?>
<input type="hidden" name="score_report_id" id="score_report_id" value="<?=$objResult["score_report_id"];?>">
</div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"> <input name="ass_report_score" type="text" id="ass_report_score" size="5"
value="<?=$objResult["ass_report_score"];?>" />
</div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnUpdate" value="Update" OnClick="frmMain.hdnCmd.value='Update';frmMain.submit();">
<input name="btnAdd" type="button" id="btnCancel" value="Cancel" OnClick="window.location='<?=$_SERVER["PHP_SELF"];?>';">
</div></td>
</tr>
<?
}
else
{
?>
<tr>
<td><div align="center"><?=$objResult["stud_id"];?></div></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><?=$objResult["ass_report_score"];?></div></td>
<td width="64" align="center"><a href="<?=$_SERVER["PHP_SELF"];?>?Action=Edit&score_report_id=<?=$objResult["score_report_id"];?>">Edit</a></td>
<td width="64" align="center"><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='<?=$_SERVER["PHP_SELF"];?>?Action=Del&stud_id=<?=$objResult["stud_id"];?>';}">Delete</a></td>
</tr>
<?
}
?>
<?
}
?>
<tr>
<td><span class="style9">
<select style="width:150px" name ="stud_id" id="stud_id">
<option value="">---เลือก---</option>
<? include 'connect.php';
$sql = "select * from student, business where student.bus_id=business.bus_id and year(curdate()) = bus_year -543";
$res = mysql_query($sql);
while($data=mysql_fetch_array($res)){
echo " <option value='$data[0]'>$data[0]</option>";
} ?>
</select>
</span></td>
<td><?=$objResult["user_title"];?><?=$objResult["user_name"];?>
<?=$objResult["user_sname"];?></td>
<td><?=$objResult["bus_name"];?></td>
<td><div align="center"><input type="text" name="ass_report_score" size="2"></div></td>
<td colspan="3" align="right"><div align="center">
<input name="btnAdd" type="button" id="btnAdd" value="Add" OnClick="frmMain.hdnCmd.value='Add';frmMain.submit();">
</div></td>
</tr>
</table>
</form>
Code (PHP)
if($_POST["hdnCmd"] == "Update")
{
$strSQL = "UPDATE score_report SET ";
$strSQL .="ass_report_score = '".$_POST["ass_report_score"]."' ";
$strSQL .="WHERE score_report_id = '".$_POST["score_report_id"]."' ";
$objQuery = mysql_query($strSQL);
if($objQuery)
{
echo "Error Save [".$strSQL."]";
}
}
|
ประวัติการแก้ไข 2013-09-03 11:27:24
|
|
|
|
Date :
2013-09-03 11:15:24 |
By :
LaiLA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if($objQuery)
{
echo "Error Save [".$strSQL."]";
}
โค้ดไม่ผิดนะครับ เผลอๆอาจจะทำการแก้ใขแล้วก็ได้ แต่ตรรกกะที่ใช้ในการ echo มันผิด
กล่าวคือ...จากโค้ดด้านบน ถ้ามีตัวแปร $objQuery เข้ามาให้ทำการ echo "Error Save [".$strSQL."]";
ก็ระบบมันรันเรียบร้อยตัวแปร$objQueryก็ทำงาน มันก็ echo ค่าของ $objQuery ออกมาสิครับ
|
|
|
|
|
Date :
2013-09-03 13:32:02 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ได้แล้วค่ะ
|
|
|
|
|
Date :
2013-09-03 14:37:59 |
By :
LaiLA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|