PHP 多条记录插入


PHP multiple records insert

我正在尝试改写我的问题。

我有一个可以返回数千条记录的数据表,每条记录都有多列。第一列中有一个复选框,用户选中该复选框后,单击一个按钮,与该行关联的CONTAINER_NUMBER将发送到要在窗体中使用的模式窗口。

下面是复选框的代码:

 echo "<tr><td><input type='"checkbox'" id='"{$Row[CONTAINER_NUMBER]}'" name='"checkMr[]'" /></td>";

这是检索CONTAINER_NUMBER并将其发送到模态窗口的 javascript:

   <script type="text/javascript">
   $(function()
   {
    $('a').click(function()
    {
        var selectedID = [];
        $(':checkbox[name="checkMr[]"]:checked').each(function()
        {               
            selectedID.push($(this).attr('id'))         
        });                                             
        $(".modal-body .containerNumber").val( selectedID );
       });
    });
    </script>

这是模式窗口中显示CONTAINER_NUMBER的部分:

 <div class="modal-body">
   <form action="" method="POST" id="serviceModalForm" name="serviceModalForm">
   <input type="text" name="containerNumber" id="containerNumber" class="containerNumber">

这是PHP的部分,它采用id="containerNumber"并将其转换为PHP变量。之后,有一个 INSERT 语句将 containerNumber 插入到数据库表中:

 <?php
   $container = $_POST['containerNumber'];
   if(isset($_POST['submit'])){
     $container = mysql_real_escapse_string(stripslashes($container));
     $sql = "INSERT INTO myTable (container_num) VALUES ('$container')";
     if(mysql_query($sql)){
       echo "Insert complete";
     }
     else {
       echo "Insert was not completed";
     }
 ?>

这段代码很好。 效果很好。 它做了它应该做的事情...当用户选中一个复选框时。 当用户选中多个复选框时,它不起作用。

基本上,从我一直在研究的内容来看,我需要将记录与变量分开$container,因为该变量中可能有多个容器,这就是为什么当有多个容器编号选择时查询不起作用的原因。

我需要能够分离容器编号并将它们存储在数组或其他东西中。查询将单独读取每条记录,并为每条记录生成多个 INSERT 语句。

我尝试了几次创建一个数组并让 sql 语句识别它,但没有成功。 我不确定我是否将数组放置在正确的位置。 我不确定在容器发送到模态窗口之前是否必须在 javascript 中完成此操作。

我知道我需要利用 FOREACH 循环来遍历数组,但就像我说的,我不确定数组在我的代码中需要放在哪里。

请帮忙。 我知道我需要学习PDO或MYSQLI。 我一定会在我的下一个应用程序中使用 PDO 或 MYSQLI。 在那之前,请帮助我解决这个问题。

谢谢,对不起这么多措辞。

您的 containerNumber 将从 js 数组中作为转换后的字符串发布。像id1,id2,id3[...]

在 php 代码中,将$container转换回数组 ( $containerArray = explode(",", $container) ) 并动态构造 sql 以在单个查询中添加所有行,以便语句变成类似

INSERT INTO myTable (container_num) VALUES ('$containerArray[0]'), ('$containerArray[1]')[...]