Мы работаем над небольшим последующим сценарием электронной почты и теперь должны определить, появляется ли электронное письмо более одного раза в результатах запроса. Если электронное сообщение появляется только один раз, используйте содержимое электронной почты A, если оно появляется более одного раза, используйте содержимое электронной почты B.
Мы используем довольно стандартный запрос PHP, а затем используем для обработки время l oop. каждая строка:
// query database followups for rows which fupdate = todays date
require 'user password stuff.php';
$today = date("Y-m-d");
// tourname, email, tourid, fupsent
$fups = $database->query("SELECT * FROM followups WHERE fupdate='$today'");
while ($followup = $fups->fetch(PDO::FETCH_ASSOC))
{
$email = $followup["email"];
// check if email appears more than once
// the code we need...
if ($emailcount === 1) {
// include content A in email body
} else {
// include content B in email body
}
}
Существует ли автомагический способ выполнить такую задачу? Или мы ограничены настройкой другого запроса / в то время как l oop для сравнения электронной почты друг с другом и подсчета того, сколько раз оно соответствует одному?
Некоторые дополнительные уточнения:
Мы работаем только с одной таблицей, которая содержит: fupdate, email, name, productid (плюс несколько других столбцов, не связанных с этой функцией).
Любые дублированные электронные письма будут иметь уникальный productid
--- Разобрались ---
Это был трудный выбор в отношении принятого ответа, оба имели одинаковую направленность и были написаны в течение нескольких минут друг от друга, но Qirel пошел немного дальше со своими объяснениями.
Окончательная версия сильно отличается от первоначальной концепции, поскольку теперь мы сначала будем использовать функции COUNT(*)
и GROUP by email
, чтобы получить список уникальных электронных писем для обработки, а затем выполнить второй запрос, используя JOIN
объединить описания и таблицы продуктов, чтобы собрать имена клиентов, а также названия продуктов и URL-адреса для создания содержимого электронной почты.
Спасибо всем трем Хо предоставил ответы / комментарии, так как все внесли свой вклад в окончательные идеи.