gpt4 book ai didi

php - 从网格数组更新数据库

转载 作者:行者123 更新时间:2023-11-29 07:00:34 25 4
gpt4 key购买 nike

我正在使用 DHTMLX javascript 库以表单形式呈现网格。我的用户可能在他们的网格中有数百种产品,但我只捕获他们添加价格的行。然后我需要将这些行连同一些其他信息添加到 MySQL 数据库中。

获取标准的 $POST 信息并在我的 PHP 脚本中对其进行操作是我目前技能的极限,所以我需要帮助的地方是更新的行创建的数组。我的 $POST 中捕获的内容的示例是:

Array
(
[product] => 64
[dept] => 000
[submit] => Submit
[gridbox_1_4] => 422
[gridbox_64_4] => 534
[gridbox_175_4] => 1234
[gridbox_180_4] => 645
)

我目前使用以下方法捕获基本的 $POST 变量:

$itemcat  = filter($_POST['product']);         
$dept7 = filter($_POST['dept']);

我的问题是如何捕获网格框变量以便在 INSERT 语句中使用它们?唯一会改变的数字是中间的数字,它代表我的数据库中的主键,用于我需要插入到另一个表中的产品。我假设我可能需要以某种方式分解 $POST 变量?然后我如何使用类似的东西插入它们:

"INSERT INTO submissions 
(product_id, user_id,submission_id, sugg_price)
VALUES ('" . $gridbox_id . "','" . $myid . "','NULL', '" . $sugg . "')";

我今天阅读的所有关于数组的文章让我很好地理解了它们从 100 英尺的角度来看是如何工作的,但不是如何具体解决我的问题,甚至是如何开始。我希望社区可以让我走上正确的道路。

最佳答案

您可以 loop$_POST 数组上执行 regular expression match在每个键上:

// PDO will make your life so much easier
$dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', $user, $password);

// prepared statements are great - prepare once, use many
$stmt = $dbh->prepare('
INSERT INTO submissions
( product_id, user_id, submission_id, sugg_price)
VALUES
(:product_id, :user_id, NULL , :sugg_price)
');

// avoid SQL injection by passing your variables in as parameters
// see http://bobby-tables.com to understand why
$stmt->bindValue('user_id', $myid);

foreach ($_POST as $key => $val) {
if (preg_match("/^gridbox_(\d+)_4$/", $key, $matches)) {
$stmt->execute(array(
':product_id' => $matches[1],
':sugg_price' => $val
));
}
}

关于php - 从网格数组更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com