2017-11-07 1 views
0

Dieses Problem macht mich verrückt seit gestern. Ich habe eine Tabelle bestehend aus 5 Spalten: kode_barang (Artikel-ID), nama_barang (Name des Artikels), Menge (Menge), harga_beli (Preis), jumlah (total). Benutzer kann 2 Artikel eingeben. Dies ist der Code in der Form:Mehrere Zeilen von PHP-Seite in Mysql einfügen

<HTML> 
<?php include "koneksi.php"; ?> 
<form action="insert3.php" method="POST"> 

<table id="theTable" border="1"> 

<thead> 
    <tr> 
     <th> Kode Barang </th> 
     <th> Nama Barang </th> 
     <th> Qty </th> 
     <th> Harga Beli </th> 
     <th> Jumlah </th> 
    <tr> 
</thead> 

<tbody> 
    <tr> 
     <td type="text" name="kode_barang" id="kode_barang1"/readonly> 
      <?php 
       mysql_connect("localhost","root",""); 
       mysql_select_db("skripsi_1"); 
       $result = mysql_query("select * from input_data_barang"); 
       $met = "var kode_barang = new Array();\n"; 
       echo '<select name="kode_barang" onchange="changeValue1(this.value)">'; 
       echo '<option></option>'; 
       while ($row = mysql_fetch_array($result)) { 
       echo '<option value="' . $row['kode_barang'] . '">' . $row['kode_barang'] . '</option>'; 
       $met .= "kode_barang['" . $row['kode_barang'] . "'] = {name:'" . addslashes($row['nama_barang']) . "',desc:'".addslashes($row['nama_barang'])."'};\n"; 
       } 
       echo '</select>'; 
      ?> 
     </td> 

     <td><input type="text" name="nama_barang" id="nama_barang1"/readonly> 
      <script type="text/javascript"> 
       <?php echo $met; ?> 
       function changeValue1(id){ 
       document.getElementById('kode_barang1').value = kode_barang[id].name; 
       document.getElementById('nama_barang1').value = kode_barang[id].desc; 
       }; 
      </script> 
     </td> 

     <td><input class="valOne" type="text" name="qty"></td> 
     <td><input class="valTwo" type="text" name="harga_beli"></td> 
     <td><input class="result" type="text" name="jumlah"></td> 
    </tr> 

    <tr> 
     <td type="text" name="kode_barang" id="kode_barang2"/readonly> 
      <?php 
       mysql_connect("localhost","root",""); 
       mysql_select_db("skripsi_1"); 
       $result = mysql_query("select * from input_data_barang"); 
       $jsArray = "var kode_barang = new Array();\n"; 
       echo '<select name="kode_barang" onchange="changeValue2(this.value)">'; 
       echo '<option></option>'; 
       while ($row = mysql_fetch_array($result)) { 
       echo '<option value="' . $row['kode_barang'] . '">' . $row['kode_barang'] . '</option>'; 
       $jsArray .= "kode_barang['" . $row['kode_barang'] . "'] = {name:'" . addslashes($row['nama_barang']) . "',desc:'".addslashes($row['nama_barang'])."'};\n"; 
       } 
       echo '</select>'; 
      ?> 
     </td> 

     <td><input type="text" name="nama_barang" id="nama_barang2"/readonly> 
      <script type="text/javascript"> 
       <?php echo $jsArray; ?> 
       function changeValue2(id){ 
       document.getElementById('kode_barang2').value = kode_barang[id].name; 
       document.getElementById('nama_barang2').value = kode_barang[id].desc; 
       }; 
      </script> 
     </td> 

     <td><input class="valOne" type="text" name="qty"></td> 
     <td><input class="valTwo" type="text" name="harga_beli"></td> 
     <td><input class="result" type="text" name="jumlah"></td> 
    </tr> 

    <script> 
     document.getElementById("theTable").addEventListener("input", function(e) { 
     var row = e.target.parentNode.parentNode 
     var val1 = row.querySelector(".valOne").value 
     var val2 = row.querySelector(".valTwo").value 
     row.querySelector(".result").value = val1 * val2 
     }) 
    </script> 
</tbody> 

    <td><input type="submit" value="OK"></a> 
     <input type="reset" value="Reset"></td> 
</table> 
</form> 
</HTML> 

Und das ist die Verbindung zu meiner Datenbank:

<?php 
include "koneksi.php"; 

$kode_barang=$_POST['kode_barang']; 
$nama_barang=$_POST['nama_barang']; 
$qty=$_POST['qty']; 
$harga_beli=$_POST['harga_beli']; 
$jumlah=$_POST['jumlah']; 

$query ="INSERT INTO faktur (kode_barang, nama_barang, qty, harga_beli, jumlah) VALUES ('".$kode_barang."', '".$nama_barang."', '".$qty."', '".$harga_beli."', '".$jumlah."'), ('".$kode_barang."', '".$nama_barang."', '".$qty."', '".$harga_beli."', '".$jumlah."')"; 
$sql =mysqli_query($connect, $query); 

if ($sql){ 
header ("location: faktur.php"); 
}else{ 
echo "Error."; 
     echo "<br><a href='input_faktur.php'>Back</a>"; 
} 
?> 

Beachten Sie, dass meine ‚Kode Barang‘ eine Drop-Down-Option ist, und jedes Mal wenn ein Benutzer auf ein Element ID, Name des Artikels wird automatisch in der Spalte 'Nama Barang' angezeigt. Alles auf dieser Seite funktioniert perfekt.

Aber wenn ich es in der Datenbank gespeichert habe, hat es nicht beide Elemente (Element in der ersten Zeile und der zweiten Zeile) gespeichert. Die Datenbank hat das zweite Objekt nur gespeichert, aber zweimal gespeichert. Wenn ich eine Zeile zu der Tabelle hinzufüge, werden 3 Zeilen, Datenbank speichert nur das dritte Element und speichert es dreimal. Wenn ich den Namen [] zu dem Namen hinzufügen, wie name=kode_barang[], Datenbank nicht die Element-ID gespeichert, sondern nur "Array" Text anzeigen.

Würde jemand bitte mir dabei helfen? Vielen Dank.

+0

** WARNUNG **: Wenn Sie nur Wenn Sie PHP lernen, verwenden Sie bitte nicht die [mysql_query'] (http://php.net/manual/en/function.mysql-query.php) Schnittstelle. Es ist so schrecklich und gefährlich, dass es in PHP 7 entfernt wurde. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps) -pdo-for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) erläutert Best Practices. Ihre Benutzerdaten sind ** nicht ** [richtig maskiert] (http://bobby-tables.com/php.html) und es gibt [SQL injection bugs] (http://bobby-tables.com/) und kann ausgenutzt werden. – tadman

+1

'' Soweit ich weiß, '' hat keinen Typ oder Namen. –

Antwort

0

Sie verwenden den gleichen Namen für beide Ihre Felder verwenden, um ein Array name="nama_barang[]"and name="kode_barang[]"

in der php eine Schleife machen jedes Feld einzeln speichern

Verwandte Themen