PHP订单捕获门户

时间:2012-03-29 18:03:03

标签: php mysql

在开始之前我需要一些建议。我的PHP技能只有3个月的历史,所以我一边学习。

我需要创建一个订单捕获屏幕,将信息捕获到数据库中。

订单最多可包含150行,所有这些都需要捕获。

我可以很容易地创建表单,但我想知道将这个写入数据库的最佳方法是什么。

在提交时,我可以使用post方法获取表单值,并使用以下命令将它们写入mysql:

INSERT INTO example
  (example_id, name, value, other_value)
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

是否有更简洁的方法来执行此操作,还是需要重复150行的代码?

1 个答案:

答案 0 :(得分:1)

从可用性的角度来看,您可能希望重新考虑表单的设计。如果用户填写了149行订单并意外点击后退按钮,他们将会有一个非常糟糕的一天。也许您应该考虑一次捕获一行,或者允许用户上传包含所有条目的文件(电子表格,CSV等)。

如果无法更改表单的设计,则需要在循环中处理这些行。循环看起来像这样:

for ( $i = 1; $i <=150; $i++ ) {
    $name = $_POST['name' . $i];
    $value = $_POST['value1' . $i];
    // capture the rest of the field values
    $query = "INSERT INTO (...) VALUES ($name, $value, ...)";
    mysql_query($query);
}

或者,您可以将每个循环的结果附加到一个大查询中,并在捕获所有150行后运行它。

为简洁起见,我遗漏了一些您需要补充的细节:

  • 转义您的输入以确保您的用户不会损坏您的数据库
  • 考虑使用PDO或mysql_ *之外的其他东西来简化数据库使用。
  • 如果一行留空,请检查以确保您没有捕获和插入空值。