У меня есть кнопка «Добавить в корзину» на главной странице. После сбора своего продукта в корзину, пользователь отправит (обработает) список продукта в форме. Поскольку будет представлено более одного продукта, который будет отправлен, форма будет добавлена автоматически (я делаю это с помощью функции foreach
).Ввести более одного значения в базу данных
foreach ($_SESSION["products"] as $cart_itm) {
echo '<input name="product_name">'.$cart_itm["product_name"].'/>';
echo '<input name="product_price">'.$cart_itm["prduct_price"].'/>';
}
Мой стек теперь думать как представить это несколько значение в том виде, в одной кнопки представить. Так что я хочу достичь, как это:
INSERT INTO `product` ( `productname` , `price` , `image`)
VALUES ('Product 1', '$10', 'product-1.jpg'),
('Product 2', '$20', 'product-2.jpg'),
('Product 3', '$30', 'product-3.jpg');
Поскольку я не знаю, насколько продукт, который они собираются представить, которые это означает также, как много значений, которые необходимы для SQL, мой вопрос сейчас как автоматически добавить значение, основанное на количестве требуемого ввода.
Я надеюсь, что кто-нибудь поймет, чего я собираюсь достичь здесь.
[UPDATE ВОПРОС 1]
Я пробовал так как, как Arif_suhail_123 предложил:
<?php
$mysql_hostname = "myhost.com";
$mysql_user = "myname";
$mysql_password = "mypassword";
$mysql_database = "database-one";
$connection=mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Can't connect to mysql");
mysql_select_db($mysql_database, $connection) or die("Can't Select Database");
for($i=0; $i<count($_POST['product_name']);$i++)
{
$product_name=$_POST['product_name'][$i];
$product_price=$_POST['product_price'][$i];
//Run your query here.
$mysql_query="INSERT INTO `member_cart` ( `product_cart_name` , `product_cart_price`)
VALUES ('$product_name', '$product_price')";
$result= mysql_query($connection, $mysql_query)
or die(mysql_error($connection));//here $connection is your
//database connection
}
?>
Моя форма:
if(isset($_SESSION["products"])) {
$total = 0;
echo '<ol>';
echo '<form action="cart-post-config.php" method="POST">>';
foreach ($_SESSION["products"] as $cart_itm) {
echo '<tr>';
echo '<td></td>';
echo '<td><input type="text" name="product_name[]"value='.$cart_itm["name"].'/></td>';
echo '<td><input type="text" name="product_price[]"value='.$cart_itm["price"].'/></td>';
echo '<td>View Save Delete</td>';
echo '</tr>';
}
echo '<input type="submit" name="submit" />';
echo '</form>';//close the form
}
else {
echo 'Your Cart is empty'; }
[UPDATE ВОПРОС 2]
Я пробовал так как, как Умар предложил:
<?php
$mysql_hostname = "....";
$mysql_user = ".....";
$mysql_password = ".....";
$mysql_database = ".......";
$connection=mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Can't connect to mysql");
mysql_select_db($mysql_database, $connection) or die("Can't Select Database");
$query = "INSERT INTO `member_cart` ( `product_cart_name` , `product_cart_price`) VALUES";
$values = array();
$total_products=0;
foreach ($_SESSION["products"] as $cart_itm) {
$values[] = "('{$cart_itm['product_name']}', '{$cart_itm['product_price']}')";
$total_products++;
}
print "Total products are ".$total_products;
//final query
$query = implode(",",$values);
?>
Но он всегда печатает что Total products are 0
хотя я принести некоторые продукты в всех связанных с входами.
Пожалуйста, помогите
Вы должны написать запрос в цикле или несколько раз, чтобы сделать то же самое. –
Скорее всего, вам нужна петля, ее слишком широкая. мы даже не знаем, как выглядит разметка и как значения вставляются внутри контейнера (сеанс?). – Ghost
можете ли вы добавить данные, которые вы получаете после отправки формы? –