[英]How to prevent overwriting of php variable having value of selected option in loop
實際上,我想將從一個數據庫(學生信息)獲取的值連同他們的出勤狀態一起存儲到另一數據庫(出勤)中,我想在while循環的每次迭代中存儲數據。 從學生信息數據庫檢索到的數據已成功存儲到出勤數據庫中,但在每次迭代中均未存儲特定的所選選項,它僅存儲所選的最新選項的值並覆蓋所選選項的先前狀態。
<html>
<head>
</head>
<body>
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
include("config.php");?>
<div class="form-container">
<form method="post" action="" role="form">
<!-- <div class="container"> -->
<div class="col-lg-3">
<div class="form-group">
<?php
$qs=mysql_query("select * from student_table");
?>
<table border=1>
<?php
while($stid=mysql_fetch_row($qs))
{
?>
<tr>
<td ><?php echo $stid[0]?></td>
<td><?php echo $stid[1]?></td>
<td>
<select name="present" >
<option value=""> ---Select Attendence--- </option>
<option value="P"> Present </option>
<option value="A"> Absent </option>
</select></td>
</tr>
<?php
$stud= $stid[0]; //roll no of student from student database
$subj= $stid[1]; //name of student from student database
$date = date('Y-m-d H:i:s'); //date
if(isset($_POST['present'])){ //selected option value, but it gets overwritten and at the end displays latest value except particaular value of every iteration
$department=$_POST['present'];
$query=mysql_query("Insert into tbl_attendence (StudentRollNumber,SubjectId,Attendence,Date)VALUES('$stud','$subj','$department','$date')");
if(!$query)
{
echo mysql_error();
}
}
}
?>
</table>
</div>
</div>
<button type="submit" name="save" value="Save" class="btn btn-success btn-sm">Save</button>
</form>
</body>
</html>
因此,最終得到的是多個具有相同name
<Select>
元素。 當您執行此操作時,實際上只有最新的發布。
因此,您需要確保每個元素都有唯一的名稱。 您可以通過使用學生ID作為鍵,使它們成為數組的一部分來實現此目的:
<select name="present['<?= $stid[0] ?>']" >
然后,當您插入時,請執行以下操作:
foreach($_POST['present'] as $stud => $present){
$date = // whatever
$subj = // whatever
$sql="INSERT INTO tbl_attendence (StudentRollNumber,SubjectId,Attendence,Date) VALUES('$stud','$subj','$present','$date')");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.