Есть такой код отправки содержимого корзины на мыло. Почему каждый товар отправляется своим письмом (например, если в корзине 3 товара = 3 отдельных письма). Где ошибка? как исправить?
<?php
require("includes/connection.php");
$connect = mysqli_connect($server, $user, $password, $db);
$sql="SELECT * FROM products WHERE id IN(";
foreach($_SESSION['cart'] as $id => $value) {
$sql.=$id.",";
}
$sql=substr($sql, 0, -1).") ORDER BY name ASC";
$query=mysqli_query($connect, $sql);
$totalprice=0;
if(isset($_POST['order'])){
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'From: Your name <info@address.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
while($row=mysqli_fetch_array($query)){
$subtotal=$_SESSION['cart'][$row['id']]['quanity']*$row['price'];
$totalprice+=$subtotal;
$content='
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<tr>
<td>' .$row["name"]. '</td>
<td>' .$row["id"] . $_SESSION["cart"][$row["id"]]["quanity"]. '"</td>
<td>' .$row["price"]. '$</td>
<td>' .$_SESSION["cart"][$row["id"]]["quanity"]*$row["price"]. '$</td>
</tr>
</body>
</html>
';
$message = $_POST['fio'].$content;
$message = wordwrap($message, 70, "\r\n");
mail($_POST['email'], 'My Subject', $message, $headers);
echo "<script type='text/javascript'>alert('$content');</script>";
}
}
?>
Потому что у вас в цикле условие while($row=mysqli_fetch_array($query))
- дословно: сколько товаров в ответе БД mysql, столько раз повторить действие ниже между {....}
, а в вашем случае отправку письма
Решение
Чтобы исправить, в цикле while
сгенерируйте 1 письмо с нужным кол-вом товаров, а уже после отправьте письмо mail($_POST['email'], 'My Subject', $message, $headers);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Настраиваю поиск в гридвью, столкнулась с банальной проблемойВ выводимой таблице на поля из связанных таблиц не добавляется поиск
сделал небольшую новостную ленту на php, с пользователем имеющим возможность добавлять записи в базу данных и удалять ихИмеется таблица news со следующими...
Есть список, состоящий из словМогу ли я с помощью php записать слова из списка в БД?