gpt4 book ai didi

php - 如何在 Php 和 MYSQL 中将每个数组值作为单独的行插入

转载 作者:行者123 更新时间:2023-11-29 05:26:52 26 4
gpt4 key购买 nike

我正在尝试找出如何获取数组 $_POST['custom'] 并将值插入到 mysql 数据库中的单独行中。

var_dump($_POST['custom']) 给出数组 array(1) { [0]=> string(12) "item1, item2, "},

我已经尝试了 foreach 和 echo 以查看我是否可以单独生成行,但我只是返回了整个数组:

$array = $_POST['custom'];

foreach ($array as $item)
{
echo $item,'-';
}

并且输出是 item1, item2, - 而不是 item1-item2

我要做的是将每个项目连同购买该项目的 user_id 插入单独的行中 - 例如:

user_id  |  item
-----------------
user_1 | item1
user_1 | item2

我可以使用 json_encode($_POST['custom']) 插入一行,然后使用标准插入查询,即使引号和 [] (我已经尝试过 implode 和 explode 它们都不起作用 - 但我现在可以忍受)。那张 table 看起来像

user_id  |  item
-----------------
user_1 | ["item1,item2,"]

我的主要问题是如何将值数组 item1item2etc 用作插入数据的单独值每个项目排成一行,使其看起来像上面的第一个表格。

编辑

HTML 表单

<form name="paypalCheckout" action="<?php echo PPCART_URL; ?>" method="post">

<input type="HIDDEN" name="business" value="<?php echo PPCART_ACCOUNT; ?>">
<input type="HIDDEN" name="cmd" value="_cart">
<input type="HIDDEN" name="upload" value="1">
<input type="hidden" name="currency_code" value="<?php echo PPCART_CURRENCY; ?>">
<input type="hidden" name="lc" value="<?php echo PPCART_COUNTRY; ?>">
<input type="hidden" name="return" value="<?php echo PPCART_RETURN_URL; ?>">
<?php
if (isset ($_SESSION['paypalCart']))
{
foreach($_SESSION['paypalCart'] as $product)
{
$custom .= $product['name'].",";


}
}
?>
<input type="hidden" name="custom" value="<?php echo $custom?>">
//<input type="hidden" name="custom[]" value="<?php echo $custom?>"> I have also tried this

相关部分是 $custom 变量 - 它已经初始化为 $custom="";

解决方案

                    <?php
if (isset ($_SESSION['paypalCart']))
{
foreach($_SESSION['paypalCart'] as $product)
{
$custom .= $product['name'].",";


}
}
?>
<input type="hidden" name="custom" value="<?php echo $custom?>">

然后在我处理的php文件中

$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);


$user_id = "Test";
$custom = $_POST['custom'];
//print_r($_POST['custom']); This is good to see what your array looks like before it gets trimmed

$trim = rtrim($custom, ",");
$explode = explode(',',$trim);
//print_r($_POST['custom']); Good way to check what it looks like after being trimmed to make sure you have trimmed it correctly.

foreach ($explode as $course_id)
{
$sql = $db->query("INSERT INTO `subscriptions`(`user_id`, `course_id`) VALUES ('".$user_id."','".$course_id."')");

if($sql)
{
echo "it's good";

}
else
echo "no good", mysql_error();

}

最佳答案

你的数组是:

[0] => "item1, item2, "

而不是:

[0] => "item1",
[1] => "item2"

您必须先用逗号展开您的值,如果它是一个合适的分隔符(然后修剪它们)。

关于php - 如何在 Php 和 MYSQL 中将每个数组值作为单独的行插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202735/

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