Я пытаюсь выяснить, как взять массив $_POST['custom']
и вставить значения в отдельные строки в базе данных mysql.Как я могу вставить каждое значение массива в отдельную строку в Php и MYSQL
var_dump($_POST['custom'])
дает массив array(1) { [0]=> string(12) "item1, item2, " }
,
Я пытался Еогеасп и эхо, чтобы увидеть, если я могу производить линии по отдельности, но я просто получить весь массив, возвращаемый:
$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'])
, а затем ваш стандартный запрос вставки, даже несмотря на то, форматирование является немного странным с кавычками и [] (я пробовал оба взрываются и взрываются они не работа - но я могу жить с этим пока). Эта таблица выглядит
user_id | item
-----------------
user_1 | ["item1,item2,"]
Мой главный вопрос заключается в том, чтобы получить массив значений item1
, item2
, etc
, которые будут использоваться в качестве отдельного значения для вставки данных в одну строку за единицу, так что он выглядит как первый таблица выше.
EDIT
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();
}
показать нам свою html-форму или взглянуть на «взрывать» – worenga
не могли бы вы показать вывод print_r ($ _ POST ['custom']) – Malkocoglu
@Malkocoglu print_r дает мне 'Array ([0] => item1, item2,) ' – Fahad