小编典典

使用PHP和MySQL插入多行

sql

我正在建立一个网站,人们可以在该网站下订单,这是我第一次必须一次插入多行并且迷路了。我知道我需要一个FOR循环来执行此操作,但是我对如何构造循环一无所知。我正在使用PHP,MySQL(显然)和jQuery。我正在使用jQuery将.append()一个新的选择框添加到表单中,以允许客户端选择其他项。

这就是我通常构造代码以允许用户插入数据库的方式。我的问题是,如何以及在哪里插入循环,这样就可以一次提交所有多个行,而不必一个接一个地插入它们。一切都会有帮助的,谢谢。

<?php

if (isset($_POST['submit'])) {

    if (!$_POST['col1'] | !$_POST['col2'] | !$_POST['col3']) { die ("error"); }

    if (!get_magic_quotes_gpc()) {
        $_POST['col1'] = addslashes ($_POST['col1']);
        $_POST['col2'] = addslashes ($_POST['col2']);
        $_POST['col3'] = addslashes ($_POST['col3']);
    }

    $insert = "insert into table (col1, col2, col3) values ('".$_POST['col1']."', '".$_POST['col2']."', '".$_POST['col3']."')";
    mysql_query ($insert);

} else {
    ?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<table>
  <tr>
    <td><input type="text" name="col1"></td>
    <td><input type="text" name="col2"></td>
    <td><input type="text" name="col3"></td>

 //I'm using jQuery .append() to insert more text boxes with names (col1, col2, col3) here

  </tr>
</table>
<input type="submit" name="submit" value="Submit">
</form>

    <?php
}
?>

我的困惑是在哪里放置循环…我知道它应该是一个FOR循环,但我永远都无法工作。再次感谢任何帮助。


阅读 177

收藏
2021-05-16

共1个答案

小编典典

确保您输入的名称唯一。但是您可以这样命名每列(例如,请参见此处):

<input type="text" name="column1[]" />
<input type="text" name="column2[]" />
<input type="text" name="column3[]" />

这样,您可以使用for循环通过PHP访问列。

for($i = 0; $i < $n; $i++) // If you have $n rows
{
    echo($_POST["column1"][$i]);
    echo($_POST["column2"][$i]);
    echo($_POST["column3"][$i]);
}

要将多行插入到mySQL数据库中,请使用以下语法(另请参见:参见此处)。

INSERT INTO
    tbl_name (column1, column2, column3)
VALUES
    (1,2,3),
    (4,5,6),
    (7,8,9);

现在,您应该设置为构建SQL查询。

2021-05-16