[英]Insert multiple rows with different ID
我正在創建一個系統,其中每個行都有動態行和動態字段。 我通過一個ADD按鈕將動態行插入數據庫時遇到問題。
當我單擊該添加按鈕時,它保存數據,但數據保存在一個ID下。 它也沒有得到名字。 它正在為所有人保存名字。 我從數據庫中獲取這些名稱。 所以請幫我解決這個問題。 我在添加具有不同ID的行時遇到問題。
我的表格代碼
<form name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td>Select</td>
<td width="103">Date</td>
<td width="94">Backup_Name</td>
<td width="94">No Of Tapes</td>
<td width="53">Tape Code</td>
<td width="71">Operator Approval</td>
<td width="144">Operator Remark</td>
<td width="144">Submit</td>
</tr>
<?php
if ($que->num_rows > 0) {
while ($row = mysqli_fetch_array($que)) {
?>
<tr>
<td></td>
<td><?php echo $Date;?></td>
<td><?php echo $row['Backup_Name']; ?></td>
<td class="No_Of_Backup[]" value="" /><a href="#" class="addNewTape">Add</a></td>
<td class="Tape_Code"></td>
<td class="Operator_Verify_Status"></td>
<td class="Operator_Remark"></td>
</tr>
<?php
}
}
?>
</table>
<td><input type= "submit" value="add" name="add" onclick="submitdetails();"/></td>
</form>
我的PHP代碼
<?php
include_once 'dpconnect.php';
//set validation error flag as false
$error = false;
$que=mysqli_query($MySQLiconn ,"select Backup_Name from admin_backup_list ");
$ftch=mysqli_fetch_array($que);
$Backup_Name=$ftch['Backup_Name'];
if (isset($_POST['add'])) {
$query1 = "insert into backup_list (Backup_Name) values ('". $Backup_Name ."')";
mysqli_query($MySQLiconn, $query1);
$last_id = mysqli_insert_id($MySQLiconn);
$Date=date('y/m/d');
foreach($_POST['Tape_Code'] as $key => $value){
$Tape_Code = $_POST['Tape_Code'][$key];
$Operator_Verify_Status = $_POST['Operator_Verify_Status'][$key];
$Operator_Remark = $_POST['Operator_Remark'][$key];
$query2= "insert into tapes (Backup_List_ID, Tape_Code,Operator_Verify_Status, Operator_Remark, Operator_Date) values ('". $last_id ."','". $Tape_Code ."','" .$Operator_Verify_Status ."','". $Operator_Remark ."','". $Date ."');";
mysqli_query($MySQLiconn, $query2);
}
}
?>
動態文字欄位
$(document).ready(function() {
var i = 0;
$('.addNewTape').on( "click", function() {
$(this).parent().siblings(".Tape_Code").append('<input type="text" name="Tape_Code[]" value="'+ i +'"/><br>');
$(this).parent().siblings(".Operator_Verify_Status").append('<SELECT name="Operator_Verify_Status[]"><OPTION value="verify">Verify</OPTION><OPTION value="NotVerify">Not Verify</OPTION><OPTION value="Failed">Failed</OPTION></SELECT><br>');
$(this).parent().siblings(".Operator_Remark").append('<input type="text" name="Operator_Remark[]" value=""/><br>');
i++;
});
});
|backup list
id name
-----------------
0 qwer
1 33344
2
tapes
id code approval
-----------------------
0 5959 yes
1 565 yes----->dynamic field
1 5656 yes----->dynamic field
2 8888 yes
我無法在數據庫中獲得這些1,1。 現在我全都拿0
您在沒有while循環的情況下獲取了數據,因此在while循環中獲取數據是這樣的:
while ($ftch=mysqli_fetch_array($que)) {
if (isset($_POST['add'])) {
$query1 = "insert into backup_list (Backup_Name) values ('". $Backup_Name ."')";
mysqli_query($MySQLiconn, $query1);
$last_id = mysqli_insert_id($MySQLiconn);
$Date=date('y/m/d');
foreach($_POST['Tape_Code'] as $key => $value){
$Tape_Code = $_POST['Tape_Code'][$key];
$Operator_Verify_Status = $_POST['Operator_Verify_Status'][$key];
$Operator_Remark = $_POST['Operator_Remark'][$key];
$query2= "insert into tapes (Backup_List_ID, Tape_Code,Operator_Verify_Status, Operator_Remark, Operator_Date) values ('". $last_id ."','". $Tape_Code ."','" .$Operator_Verify_Status ."','". $Operator_Remark ."','". $Date ."');";
mysqli_query($MySQLiconn, $query2);
}
}
}
您應將數據庫的ID列設置在AUTO INCREMENT上,以便它自動為新記錄生成ID。 大多數數據庫都支持自動遞增。 由於您使用的是MySQL: http : //dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.