2016-07-22 2 views
0

У меня возникла проблема с добавлением нескольких записей в MySQL. Я знаю, что мне не хватает чего-то простого, но я не могу понять это. отсюда этот пост ... Все работает, ожидая проблемы, когда пользователь нажимает кнопку submit. распознается только последняя строка таблицы.Вставка нескольких записей в 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. – 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> 
Смежные вопросы