在动态创建的文本字段中插入相同的Id

时间:2016-07-05 10:39:07

标签: php jquery mysql

我正在使用以下Jquery选项

创建动态文本字段

Jquery代码

<script>
    $(function () {
        $('input.more').on('click', function () {
            var $table = $('#input_fields');
            var $tr = $table.find('tr').eq(0).clone();
            $tr.appendTo($table).find('input').val('');
        });
    });
</script>

并使用以下PHP

将记录插入表中
$post_count = count($_POST['product']);
$post1 = array();
$post2 = array();
$post1 = $_POST['product'];
$post2 = $_POST['quantity'];
for ($i = 0; $i <= $post_count; $i++) {
    $sql[] = "INSERT INTO product (product,quanity) VALUES ('".$post1[$i]."','".$post2[$i]."')";
}
foreach ($sql as $query) {
    mysqli_query($conn, $query);
}
?>

1)库存ID从表中检索。

我想知道何时输入产品和数量,如何在动态创建的文本字段中保留相同的库存ID并将数据插入数据库

1 个答案:

答案 0 :(得分:0)

首先停止使用mysql_mysqli_库 它们已经过时了,因为SQL injection issues而不应该使用它们。

如果要执行循环,则需要将所有逻辑放在同一循环中 像这样:

//connect to DB 
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$post_count = count($_POST['product']);
$post1 = array();
$post2 = array();
$post1 = $_POST['product'];
$post2 = $_POST['quantity'];
//prepare your statement
$stmt = $dbh->prepare("INSERT INTO product (product,quantity) VALUES (?, ?)");
$stmt->bindParam(1, $product);
$stmt->bindParam(2, $quantity);
for ($i = 0; $i <= $post_count; $i++) {
  $product = $post1[i];
  $quantity = $post2[i];
  //execute the prepared statement with your parameters.
  $stmt->execute();
}

请注意,此代码uses PDO的参数本身可以从SQL注入问题中保存,运行速度更快,更易于使用。

如果您想更快地执行插入操作,可以使用以下代码将它们放在单个insert语句中:How to insert an array into a single MySQL Prepared statement w/ PHP and PDO