我正在建立一个网站,人们可以在该网站下订单,这是我第一次必须一次插入多行并且迷路了。我知道我需要一个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循环,但我永远都无法工作。再次感谢任何帮助。
确保您输入的名称唯一。但是您可以这样命名每列(例如,请参见此处):
<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查询。