2016-07-22 89 views
0

我有一个问题添加多个记录到MySQL。我知道我错过了一些简单的东西,但我无法弄清楚。因此这篇文章...当用户点击提交时,每件事情都在为期望的问题。只有表格的最后一行被识别。从多行表中插入多个记录到MySQL PHP Javascript

示例...前2行的单元号为1234-01,1234-02,最后一行的单元号为1234-03。当点击提交时,它跳过01和02,并且仅将03输入到数据库中。

谢谢你的帮助....我的头开始伤害,因为它在我的桌子上撞。

<h2>Please fill in the information below</h2> 
<form action="pmUnitCreate.php" method="post"> 
<p>Click the Add button to add a new row. Click the Delete button to Delete last row.</p> 

<table id="myTable"> 
    <th>Unit Number</th> 
    <th>Model Number</th> 
    <th>Serial Number</th> 
    <th>Scope</th> 
    <th><input type="button" id="btnAdd" class="button-add" onClick="insertRow()" value="Add"></input></th> 
    <th><input type="button" id="btnDelete" class="button-delete" onClick="deleteRow(-1)" value="Delete"></input></th> 
    <tr> 
     <td><input type="text" name="UnitID" /></td> 
     <td><input type="text" name="ModelNumber" /></td> 
     <td><input type="text" name="SerialNumber" /></td> 
     <td><select name="Scope"> 

       <option value="BTank">BTank</option> 
       <option value="WSEcon">WSEcon</option> 
       <option value="NetPkg">NetPkg</option> 
       <option value="CstmCabinet">CstmCabinet</option> 
       <option value="CstmCtrl">CstmCtrl</option> 
       <option value="CstmRef">CstmRef</option> 
       <option value="CstmSM">CstmSM</option> 
       <option value="CstmHV">CstmHV</option> 
       <option value="CPCtrl">CPCtrl</option> 
       <option value="DesiHW">DesiHW</option> 
       <option value="DigScroll">DigScroll</option> 
       <option value="DFGas">DFGas</option> 
       <option value="DWall">DWall</option> 
       <option value="MZ-DD">MZ-DD</option> 
       <option value="DPP">DPP</option> 
       <option value="Encl">Encl</option> 
       <option value="PlateHX">PlateHX</option> 
       <option value="ERW">ERW</option> 

       </select> 
       </td> 



    </tr> 

<br> 

<script> 

var index = 1; 
function insertRow(){ 
      var table=document.getElementById("myTable"); 
      var row=table.insertRow(table.rows.length); 
      var cell1=row.insertCell(0); 
      var t1=document.createElement("input"); 
       t1.name = "UnitID"; 
       cell1.appendChild(t1); 
      var cell2=row.insertCell(1); 
      var t2=document.createElement("input"); 
       t2.id = "ModelNumber"; 
       cell2.appendChild(t2); 
      var cell3=row.insertCell(2); 
      var t3=document.createElement("input"); 
       t3.id = "SerialNumber"; 
       cell3.appendChild(t3); 
      var cell4=row.insertCell(3); 
      var element2 = document.createElement("select"); 
       element2.id="Scope"; 
       //element2.type = "select"; 
    var option1 = document.createElement("option"); 
     option1.innerHTML = "BTank"; 
      option1.value = "1"; 
      element2.add(option1, null); 
    var option2 = document.createElement("option"); 
     option2.innerHTML = "WSEcon"; 
     option2.value = "2"; 
     element2.add(option2, null); 
    var option3 = document.createElement("option"); 
     option3.innerHTML = "NetPkg"; 
      option3.value = "3"; 
      element2.add(option3, null); 
     var option4 = document.createElement("option"); 
     option4.innerHTML = "CstmCtrl"; 
      option4.value = "4"; 
      element2.add(option4, null); 
     var option5 = document.createElement("option"); 
     option5.innerHTML = "CstmRef"; 
      option5.value = "5"; 
      element2.add(option5, null); 
     var option6 = document.createElement("option"); 
     option6.innerHTML = "CstmSM"; 
      option6.value = "6"; 
      element2.add(option6, null); 
     var option7 = document.createElement("option"); 
     option7.innerHTML = "CstmHV"; 
      option7.value = "7"; 
      element2.add(option7, null);   


     cell4.appendChild(element2); 

     index++; 

} 

function deleteRow(){ 
document.getElementById("myTable").deleteRow(-1); 

} 

下面是SQL代码

<?php 
//initialize and read the variables from the posting 
//include('Mail.php'); 
$UnitID=$_POST['UnitID']; 
$UnitID="'" . $UnitID . "'"; //Adds the required quotation marks 
$ModelNumber=$_POST['ModelNumber']; 
$ModelNumber="'" . $ModelNumber . "'"; //Adds the required quotation marks 
$SerialNumber=$_POST['SerialNumber']; 
$SerialNumber="'" . $SerialNumber . "'"; //Adds the required quotation marks 
$Scope=$_POST['Scope']; 
$Scope="'" . $Scope . "'"; //Adds the required quotation marks 

echo $UnitID; 
echo $ModelNumber; 
echo $SerialNumber; 
echo $Scope; 

echo $UnitID; 
echo $ModelNumber; 
echo $SerialNumber; 
echo $Scope; 

echo $UnitID; 
echo $ModelNumber; 
echo $SerialNumber; 
echo $Scope; 



//Connect to the database 
include('pmconnect.php'); 

$sql = "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, 'SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope)"; 
$sql = "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, `SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope)"; 
$sql = "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, `SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope)"; 



if ($conn->multi_query($sql) === TRUE) 

echo "<h3>Record Created Successfully.</h3><br>"; 

?>enter code here 
+0

您将要覆盖'$ SQL剪辑'。你应该附加'。='并确保每个查询都有自己的';' –

回答

3

您将要覆盖$sql(和其他变量,你执行一个循环?),所以它只插入最后一个。小串联,并确保每个查询都有自己的分号会解决的事情了:

//Connect to the database 
include('pmconnect.php'); 

$sql = "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, 'SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope);"; 
$sql .= "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, `SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope);"; 
$sql .= "INSERT INTO `tblUnitMaster` (`UnitID`, `ModelNumber`, `SerialNumber`, `Scope`) VALUES ($UnitID, $ModelNumber, $SerialNumber, $Scope)"; 
+0

这就是我最初的想法,但这没有什么区别。仍然跳过第一行并只插入最后一行。 – elliottdan

+0

这是因为你没有循环数据,因此只有一组变量被填充。 –

+0

可能看起来像一个愚蠢的问题,但如何循环像这样的SQL语句?对不起,相对较新的SQL。 – elliottdan

0

这是因为@SQL变量是由你的代码覆盖。要么你需要使用不同的变量名或尝试插入多行:

Insert table TABLE (A,B) 
Values (1,1) ,(2,2),(3,3) 
0

Image of page

这里是JS与+索引

<script> 

var index = 1; 
function insertRow(){ 
      var table=document.getElementById("myTable"); 
      var row=table.insertRow(table.rows.length); 
      var cell1=row.insertCell(0); 
      var t1=document.createElement("input"); 
       t1.name = "UnitID"+index; 
       cell1.appendChild(t1); 
      var cell2=row.insertCell(1); 
      var t2=document.createElement("input"); 
       t2.id = "ModelNumber"+index; 
       cell2.appendChild(t2); 
      var cell3=row.insertCell(2); 
      var t3=document.createElement("input"); 
       t3.id = "SerialNumber"+index; 
       cell3.appendChild(t3); 
      var cell4=row.insertCell(3); 
      var element2 = document.createElement("select"); 
       element2.id="Scope"+index; 
       //element2.type = "select"; 
    var option1 = document.createElement("option"); 
     option1.innerHTML = "BTank"; 
      option1.value = "1"; 
      element2.add(option1, null); 
    var option2 = document.createElement("option"); 
     option2.innerHTML = "WSEcon"; 
     option2.value = "2"; 
     element2.add(option2, null); 
    var option3 = document.createElement("option"); 
     option3.innerHTML = "NetPkg"; 
      option3.value = "3"; 
      element2.add(option3, null); 
     var option4 = document.createElement("option"); 
     option4.innerHTML = "CstmCtrl"; 
      option4.value = "4"; 
      element2.add(option4, null); 
     var option5 = document.createElement("option"); 
     option5.innerHTML = "CstmRef"; 
      option5.value = "5"; 
      element2.add(option5, null); 
     var option6 = document.createElement("option"); 
     option6.innerHTML = "CstmSM"; 
      option6.value = "6"; 
      element2.add(option6, null); 
     var option7 = document.createElement("option"); 
     option7.innerHTML = "CstmHV"; 
      option7.value = "7"; 
      element2.add(option7, null);   


     cell4.appendChild(element2); 

     index++; 

} 

function deleteRow(){ 
document.getElementById("myTable").deleteRow(-1); 

} 

</script>