ช่วยดูโค้ด หน่อยคับ คือ ผมเขียน ดึงข้อมูล จาก DB มา พร้อมรับค่าด้วย แล้วจะส่งไปอัพเดท ตารางเดิมยังไง
น่าจะเขียนแบบนี้ดีกว่าครับ
<?
$strSQL = "SELECT * FROM score WHERE score_year = '".$_GET["yearloan"]."' AND score_faculty = '".$_GET["facultyloan"]."'";
$objQuery = mysql_query($strSQL) ;
$i=0; while($i<=$objResult = mysql_fetch_array($objQuery)) { ?>
<tr>
<td width="103"><? echo $objResult["nisit_id"]; ?></td>
<td width="299"><? echo $objResult["score_name"];?></td>
<td width="60"><? echo $objResult["scored_check"];?></td>
<td width="90"><input name="score2[<? echo $i?>]" type="text" id="score2" size="15" /></label></td>
<td width="90">
<input name="score3[<? echo $i?>]" type="text" id="score3" size="15" /></td>
</tr>
<? $i++; } ?>
</table>
<input name="score_year" type="hidden" value="<? echo $_GET["yearloan"]?>" />
<input name="score_faculty" type="hidden" value="<? echo $_GET["facultyloan"]?>" />
<input type="submit" name="button2" id="button2" value="บันทึก" />
<input type="submit" name="button3" id="button3" value="ยกเลิก" />
</form>
<? } ?>
ส่วนหน้ารับก็แบบนี้ครับ
<?php
if(isset($_POST["score2"] , $_POST["score3"])){
foreach($_POST["score2"] as $key => $val){
$sql = "update tb set score2 = $val , score3 = {$_POST["score3"][$key]} where scoreyear='{$_POST["score_year"]}' and scorefaculty = '{$_POST["score_year"]}' ";
// ............ update executed
}
}
?>
Date :
2014-02-18 23:57:24
By :
sakuraei
ขอบ คุณ คับ ว่า แต่ แล้ว ค่าของscore2 กับ score3 จะตรง กับ nisit _id ไหมอะคับ
อีกอย่างนึงคือ ทำไม ต้อง isset คับ แล้ว เจ้า foreach ทำงาน ยังไง
สมมติ ว่า มีรายชื่อ ของ เด็ก ใน ปี นี้ คณะ นี้ 300 คน ในการ อัพ เดท แบบนี้ score2 และscore3 จะ มีการที่ไม่ ตรงกับ id ของ เด็กไหม คับ
อาจรบกวน ถามเยอะไปหน่อย แต่ ถ้าผมมีความรู้ ผมก็จะได้ไปสอนต่อ ขอบคุณคับ
Date :
2014-02-19 11:45:40
By :
komza
กลัวไม่ตรงก็ใช้ nisit_id เป็น index ในอาร์เรย์เลยครับ
<input name="score2[<? echo $objResult["nisit_id"]; ?>]" type="text" id="score2" size="15" />
<input name="score3[<? echo $objResult["nisit_id"]; ?>]" type="text" id="score3" size="15" />
เข้าไปอ่านดูครับ foreach
https://www.thaicreate.com/php/php-foreach.html
Date :
2014-02-19 12:27:20
By :
sakuraei
แล้วตอนวนรับ ค่า
ถ้าใช้ nisit_id เป็น อินเด็ก จะต้องแก้เจ้านี้ยังไง
Code (PHP)
<?php
if(isset($_POST["score2"] , $_POST["score3"])){
foreach($_POST["score2"] as $key => $val){
$sql = "update tb set score2 = $val , score3 = {$_POST["score3"][$key]} where scoreyear='{$_POST["score_year"]}' and scorefaculty = '{$_POST["score_year"]}' ";
// ............ update executed
}
}
?>
เป็นc Code (PHP)
Code (PHP)
[php]<?php
$sqlScore = "SELECT * FROM score WHERE score_year = $score_year AND score_faculty = $score_faculty ";
$sqlQuery = mysql_query($sqlScore);
$objResult = mysql_fetch_array($sqlQuery)
if(isset($_POST["score2"] , $_POST["score3"])){
foreach($_POST["score2"] as $key => $val){
$sql = "update tb set score2 = $val , score3 = {$_POST["score3"][$key]} where scoreyear='{$_POST["score_year"]}' and scorefaculty = '{$_POST["score_year"]}' ";
// ............ update executed
}
}
?>
ยังงงอยู่ อะคับ
Date :
2014-02-19 14:12:11
By :
komza
ไม่ต้องแก้อะไรเลยครับ
Date :
2014-02-19 14:16:23
By :
sakuraei
อ่า ขอบคุณคับ เด๋วลองทำก่อง ^^
Date :
2014-02-19 14:19:56
By :
komza
สงสัยอีกอย่างนึงอะคับ คือ ฝั่งรับ จะรู้ได้ไงว่า score2 score3 จะตรงกับ nisit_id ได้ยังไง
ค่าที่ส่งไป
update tb set score2 = 8 , score3 = 99 where scoreyear='2557' and scorefaculty = '5' update tb set score2 = 2 , score3 = 98 where scoreyear='2557' and scorefaculty = '5' update tb set score2 = 6 , score3 = 98 where scoreyear='2557' and scorefaculty = '5'
Date :
2014-02-19 15:06:55
By :
komza
Load balance : Server 02