Получить адреса электронной почты из базы данных и отправить их по всем адресам

0

Я новичок в PhP и пытаюсь написать код, который будет получать все электронные письма из таблицы в db и записывать их в поле BCC в почтовом клиенте (я использую Outlook). Fisrt Я создал HTML-код. Например, если выбранным значением является Partneri, тогда я хочу получить все электронные письма из таблицы, где категория является Партнером.

<select name="email">
<option value="Uposlenik"> Uposlenici  <br/>
<option value="Partner"> Partneri  <br/>
<option value="Limari Montazeri"> Limari montažeri  <br/>
<option value="Gradjevinske firme"> Građevinske firme <br/> 
<option value="Krovopokrivacke firme"> Krovopokrivačke firme <br/>
<option value="Preradzivaci lima"> Preradživači lima <br/>
<option value="Limarske radionice"> Limarske radionice  <br/>
<option value="Stovarista-Trgovci"> Stovarišta-Trgovci
</select>

После этого я создал файл php, и у меня не было ошибок. Результат, который я получил, - это только выбранное значение nothnig else.

<?php
$host="localhost"; // Host name
$username="***"; // username
$password="***"; // password
$database="***"; // Database name
$tbl_name="clanovi"; // Table name

$link=mysql_connect("$host", "$username", "$password");
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db("$database");
if (!$db_selected) {
    die ('db is not selected : ' . mysql_error());
}
$kategorija=$_POST['email'];
//check post
echo $kategorija;

$query= "SELECT  'EMAIL' FROM 'clanovi' WHERE 'KATEGORIJA'='$kategorija'";

$result=mysql_query($query) or die ("Error, query failed!");
mysql_close($link);

$row=1;
$numrows=mysql_num_rows($result);
$bccfield="Bcc:".mysql_result($result,0,"email");
while($row<$numrows)
{
$email=mysql_result($result, $row,"email");
$bccfiled="," .$email;
$row++;
Print "<a href=mailto:[email protected]?bcc=".$bccfield." /> "  ; 
}
$bccfield .="\r\n";
?>

Любая помощь будет оценена по достоинству. Заранее спасибо!

  • 3
    Для дальнейшего использования не вставляйте свое имя пользователя и пароль!
  • 0
    Хорошо спасибо за совет
Теги:

3 ответа

1
Лучший ответ

У вас небольшой сбой в коде. Он должен быть $bccfiled.=",".$email; , обратите внимание на . перед =, иначе вы переписываете содержимое переменной на каждой итерации цикла. Но даже лучшим стилем было бы сохранить адреса в массиве и implode() после них следующим образом: implode(',',$bccfields).

Поэтому нижняя часть вашего скрипта должна выглядеть примерно так:

<?php
// ...

$query= "SELECT  'EMAIL' FROM 'clanovi' WHERE 'KATEGORIJA'='$kategorija'";
$result=mysql_query($query) or die ("Error, query failed!");

while(FALSE!==($row=mysql_fetch_assoc($result))) {
  $bccfields[] = $row['EMAIL'];
}
echo sprintf("<a href=mailto:[email protected]?bcc=%s />\n", 
             urlencode(implode(',',$bccfields))); 
?>

Обратите внимание, что я не тестировал это, просто набрал его. Но вы должны получить эту идею, когда будете ее изучать.

  • 0
    В сценарии нужно решить множество проблем. Мы не можем решить все это за вас. Все, что мы можем попытаться, это указать вам правильное направление. Взгляните на фрагмент сценария, который я добавил в своем ответе, который должен привести вас в правильном направлении.
  • 0
    arkascha большое спасибо. Вы поставили меня на правильный путь, и я решил проблему ..
0

Вы должны начинать с $row=0; вместо $row=1; , В противном случае вы проигнорируете последнюю строку, полученную из БД.

0

Попробуй это,

mysql_result($result,0,"EMAIL");
                    .....^

вместо

mysql_result($result,0,"email");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню