Есть такой код отправки содержимого корзины на мыло. Почему каждый товар отправляется своим письмом (например, если в корзине 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);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Настраиваю поиск в гридвью, столкнулась с банальной проблемойВ выводимой таблице на поля из связанных таблиц не добавляется поиск
сделал небольшую новостную ленту на php, с пользователем имеющим возможность добавлять записи в базу данных и удалять ихИмеется таблица news со следующими...
Есть список, состоящий из словМогу ли я с помощью php записать слова из списка в БД?