2017-12-04 16 views
-2

複数の行のデータを同時にテーブルに挿入する際に問題があります。以下は私が持っているものです。私がsubmitをクリックすると、最後の行だけが量の最初の桁だけで挿入されます。助けてください。PHPを使って複数の行をmysql dbに挿入

HTMLフォーム:

<form method="post" action="insert.php"> 
<p><input type="text" id="product_id" name="product_id[]"/> 
    <input type="text" id="quantity" name="quantity[]"/></p> 
<p><input type="text" id="product_id" name="product_id[]"/> 
    <input type="text" id="quantity" name="quantity[]"/></p> 
<p><input type="text" id="product_id" name="product_id[]"/> 
    <input type="text" id="quantity" name="quantity[]"/></p> 
<input type="submit" name="submit" value="submit"/> 
</form> 

insert.phpページ:

<?php 
include 'config/auth.php';//database connection 
if(isset($_POST['submit'])){ 
    $product = mysqli_real_escape_string($dbc, $_POST['product_id']); 
    $quantity = mysqli_real_escape_string($dbc, $_POST['quantity']); 
    $count = sizeof($product); 
    for ($i=0; $i < $count; $i++) { 
     $Inproduct = $product[$i]; 
     $Inquantity = $quantity[$i]; 
    $query = "INSERT INTO sales (product_id, quantity) VALUES ('$Inproduct','$Inquantity')"; 
    $results = mysqli_query($dbc, $query); 
    } 
    if ($results) { 
     echo 'Success'; 
    } 
} 
?> 
+0

@kmdmおかげであなたは何を記述することができませんでしたあなたの問題は実際にはあります。 [ask]と[mcve]の作成方法をお読みください。 – CBroe

+0

また、文字列ではなく配列に対してmysqli_real_escape_string()を実行しています。その関数をループ内で実行します。例えば。 $ product [$ i]と$ quantity [$ i] – kmdm

+0

@CBroe質問を編集しました – lidave

答えて

0

次のコードは...働い

$product = $_POST['product_id']; 
    $quantity = $_POST['quantity']; 
    $count = sizeof($product); 
    for ($i=0; $i < $count; $i++) { 
     $Inproduct = mysqli_real_escape_string($dbc, $product[$i]); 
     $Inquantity = mysqli_real_escape_string($dbc, $quantity[$i]); 
    $query = "INSERT INTO sales (product_id, quantity) VALUES ('$Inproduct','$Inquantity')"; 
    $results = mysqli_query($dbc, $query); 
    } 
0
try the following code: 

HTML form 
<form method="post" action="insert.php"> 
<p><input type="text" id="product_id" name="product[id][]"/> 
    <input type="text" id="quantity" name="product[quantity][]"/></p> 
<input type="submit" name="submit" value="submit"/> 
</form> 

insert.php 

<?php 
include 'config/auth.php';//database connection 
if(isset($_POST['submit'])) 
{ 
    $products = $_POST['product']; 
    values = ""; 
    $size = count($products); 
    $i = 0; 
    foreach($products as $product) 
{ 
    $i++; 
    $product_id = mysqli_real_escape_string($dbc, $product['id']); 
    $product_quantity = mysqli_real_escape_string($dbc, 
    $product['quantity']); 
    if($i < $size){ 
     $values .= "('{$Inproduct}','{$Inquantity}'), "; 
    }else{ 
     $values .= "('{$Inproduct}','{$Inquantity}')"; 
    } 


    } 


    $query = "INSERT INTO sales (product_id, quantity) VALUES ".$values; 
    $results = mysqli_query($dbc, $query); 

    if ($results) 
    { 
     echo 'Success'; 
    } 
} 

?> 
関連する問題