2016-11-17 81 views
0

我有2個數據庫,一個是backup_list和磁帶。 backup_id是backup_list的PK和磁帶的FK。如何將數據從一個查詢插入到兩個表中。有tapecode,備註,驗證的動態文本字段。請幫幫我。將數據從動態文本字段插入到mysql中並將數據插入到兩個表中。

<script type="text/javascript"> 
 
var i = 0; 
 
$(document).ready(function() { 
 
\t $('.addNewTape').on("click", function() { 
 
\t \t $(this).parent().siblings(".Tape_Code").append('<input type="text" name="inputTapeCode[1]['+ i +']" value="'+ i +'" /><br>'); 
 
\t \t $(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>'); 
 
\t \t $(this).parent().siblings(".Operator_Remark").append('<input type="text" name="inputTapeRemark[1]['+ i +']" value="" /><br>'); 
 
\t \t i++; 
 
\t }); 
 
\t 
 
}); 
 
</script> 
 

 
\t <script> 
 
\t \t n = new Date(); 
 
\t \t y = n.getFullYear(); 
 
\t \t m = n.getMonth() + 1; 
 
\t \t d = n.getDate(); 
 
\t \t document.getElementById("date").innerHTML = d + "." + m + "." + y; 
 

 
\t 
 
function addRow(tableID) { 
 

 
\t \t \t var table = document.getElementById(tableID); 
 

 
\t \t \t var rowCount = table.rows.length; 
 
\t \t \t var row = table.insertRow(rowCount); 
 

 
\t \t \t var colCount = table.rows[0].cells.length; 
 

 
\t \t \t for(var i=0; i<colCount; i++) { 
 

 
\t \t \t \t var newcell \t = row.insertCell(i); 
 

 
\t \t \t \t newcell.innerHTML = table.rows[0].cells[i].innerHTML; 
 
\t \t \t \t //alert(newcell.childNodes); 
 
\t \t \t \t switch(newcell.childNodes[0].type) { 
 
\t \t \t \t \t case "text": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].value = ""; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t case "checkbox": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].checked = false; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t case "select-one": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].selectedIndex = 0; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t case "select-one": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].selectedIndex = 0; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t case "select-one": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].selectedIndex = 0; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t case "select-one": 
 
\t \t \t \t \t \t \t newcell.childNodes[0].selectedIndex = 0; 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t } 
 

 
\t \t function deleteRow(tableID) { 
 
\t \t \t try { 
 
\t \t \t var table = document.getElementById(tableID); 
 
\t \t \t var rowCount = table.rows.length; 
 

 
\t \t \t for(var i=0; i<rowCount; i++) { 
 
\t \t \t \t var row = table.rows[i]; 
 
\t \t \t \t var chkbox = row.cells[0].childNodes[0]; 
 
\t \t \t \t if(null != chkbox && true == chkbox.checked) { 
 
\t \t \t \t \t if(rowCount <= 1) { 
 
\t \t \t \t \t \t alert("Cannot delete all the rows."); 
 
\t \t \t \t \t \t break; 
 
\t \t \t \t \t } 
 
\t \t \t \t \t table.deleteRow(i); 
 
\t \t \t \t \t rowCount--; 
 
\t \t \t \t \t i--; 
 
\t \t \t \t } 
 

 

 
\t \t \t } 
 
\t \t \t }catch(e) { 
 
\t \t \t \t alert(e); 
 
\t \t \t } 
 
\t \t } 
 

 

 
$(document).on('click', '.btn_delete', function(){ 
 
      var Backup_Name=$(this).data("id5"); 
 
      if(confirm("Are you sure you want to delete this?")) 
 
      { 
 
       $.ajax({ 
 
        url:"delete.php", 
 
        method:"POST", 
 
        data:{Backup_Name:Backup_Name}, 
 
        dataType:"text", 
 
        success:function(data){ 
 
          alert(data); 
 
          fetch_data(); 
 
        } 
 
       }); 
 
      } 
 
     }); \t \t 
 
</script>
<html> 
 
<body>  
 
    <div class="right_col" role="main"> 
 
\t \t <h1>Daily Backup</h1> 
 
\t \t <h2 id="date"></h2> 
 
    
 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 

 
<?php 
 
$Date=date('d/m/y'); 
 
include_once 'dpconnect.php'; 
 
$que=mysqli_query($MySQLiconn,"SELECT Backup_Name FROM admin_backup_list "); 
 
?> 
 
<!--set validation error flag as false--> 
 
<form name="form2" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
 
    <table> 
 
    <tr> 
 
\t <td>Select</td> 
 
    <td width="103">Date</td> 
 
    <td width="94">Backup_Name</td> 
 
\t <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> 
 
\t <td width="144">Submit</td> 
 
    </tr> 
 
    <?php 
 
    if ($que->num_rows > 0) { 
 
    while ($row = mysqli_fetch_array($que)) { 
 
    ?> 
 
<tr> 
 
\t <td></td> 
 
    <td><?php echo $Date;?></td> 
 
    <td><?php echo $row['Backup_Name']; ?></td> 
 
\t <td><input type ="text" name="No_Of_Backup"/><a href="#" class="addNewTape">Add</a></td> 
 
    <td class="Tape_Code"></td> 
 
\t <td class="Operator_Verify_Status"></td> 
 
\t <td class="Operator_Remark"></td> 
 
\t <!--<td><input type= "button" value="Submit" name="Submit"/></td>--> 
 
</tr> 
 
<?php 
 
    } 
 
} 
 
?> 
 

 
</table> 
 
</form> 
 
<form name="form2" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
 
<TABLE id="dataTable"> 
 
\t \t <TR> 
 
\t \t \t <TD><INPUT type="checkbox" name="chk"/></TD> 
 
\t \t \t <TD><?php echo $Date;?></TD> 
 
\t \t \t <TD><INPUT type="text" name="Backup_Name"/></TD> 
 
\t \t \t <TD><INPUT type="text" name="No_Of_Backup"/></TD> 
 
\t \t \t <TD><INPUT type="text" name="Tape_Code"/></TD> 
 
\t \t \t <TD> 
 
\t \t \t \t <SELECT name="Operator_Verify_Status"> 
 
\t \t \t \t \t <OPTION value="verify">Verify</OPTION> 
 
\t \t \t \t \t <OPTION value="NotVerify">Not Verify</OPTION> 
 
\t \t \t \t \t <OPTION value="Failed">Failed</OPTION> 
 
\t \t \t \t </SELECT> 
 
\t \t \t </TD> 
 
\t \t \t <TD><INPUT type="text" name="Operator_Remark"/></TD> 
 
\t \t \t <td><input type= "submit" value="submit" name="submit"/></td> 
 
\t \t </TR> 
 
\t \t </table> 
 
\t 
 
\t 
 
\t <INPUT type="button" value="Add Row" onclick="addRow('dataTable')" /> 
 

 
\t <INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" /> 
 
</form> 
 
<?php 
 
include_once 'dpconnect.php'; 
 

 
//set validation error flag as false 
 
$error = false; 
 

 
//check if form is submitted 
 
if (isset($_POST['submit'])) { 
 
    
 
\t $Date=date('d/m/y'); 
 
\t $Backup_Name = mysqli_real_escape_string($MySQLiconn , $_POST['Backup_Name']); 
 
\t $No_Of_Backup = mysqli_real_escape_string($MySQLiconn , $_POST['No_Of_Backup']); 
 
    $Tape_Code = mysqli_real_escape_string($MySQLiconn , $_POST['Tape_Code']); 
 
\t $Operator_Verify_Status = mysqli_real_escape_string($MySQLiconn , $_POST['Operator_Verify_Status']); 
 
\t $Operator_Remark = mysqli_real_escape_string($MySQLiconn , $_POST['Operator_Remark']); 
 
    
 
    if (!$error) { 
 
     if(mysqli_query($MySQLiconn , "INSERT INTO backup_list(Backup_Name, No_Of_Backup) VALUES('" . $Backup_Name . "', '" . $No_Of_Backup . "')")) { 
 
      $successmsg = "Successfully Registered!"; 
 
     } else { 
 
      $errormsg = "Error in registering...Please try again later!"; 
 
     } 
 
    } 
 
} 
 
?> 
 
</div> 
 
</body> 
 
</html> 

+0

做兩個'INSERT'查詢。當插入'tapes'時,你可以使用'LAST_INSERT_ID()'獲取插入'backup_list'中的行的'backup_id'。 – Barmar

+0

嗯請給我一個它的示例代碼,然後我可以通過 –

回答

0

使用LAST_INSERT_ID()得到,當你插入backup_list已分配的backup_id

if(mysqli_query($MySQLiconn , "INSERT INTO backup_list(Backup_Name, No_Of_Backup) VALUES('" . $Backup_Name . "', '" . $No_Of_Backup . "')")) { 
    mysqli_query($MySQLiconn, "INSERT INTO tapes(backup_id, Tape_Code, Operator_Verify_Status, Operator_Remark) 
     VALUES (LAST_INSERT_ID(), '$Tape_Code', '$Operator_Verify_Status', '$Operator_Remark')"; 
    $successmsg = "Successfully registered"; 
} 

BTW,你應該瞭解準備的查詢,而不是使用mysqli_real_escape_string和變量替換到查詢。見How can I prevent SQL injection in PHP?

+0

但它不起作用 –

+0

你必須更詳細地說明什麼是不工作的。它是否報告錯誤(使用'echo mysqli_error($ MySQLiconn);'查看錯誤消息)? – Barmar