Пытаюсь прочитать данные из базы данных с помощью php

#php #mysql

#php #mysql

Вопрос:

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

Вот мой код для чтения адреса электронной почты:

 $recipient = mysql_query("SELECT recipientEmail FROM flightStatus 
                          WHERE arrivalStatus = 'Landed'"); 
  

В настоящее время в базе данных есть только одни данные с выполненным условием.

Использую пример PHPMailer для обхода функции рассылки, поэтому моя функция mail выглядит следующим образом:

 $mail->From     = "xxxx.yyyyy@gmail.com";
$mail->AddAddress($recipient); 
  

Но я получаю сообщение, не могу отправить сообщение.

Комментарии:

1. Планируете ли вы отправлять электронные письма нескольким людям в конечном итоге?

2. Вы пытались вывести адрес электронной почты, прежде чем использовать его для отправки электронного письма? Довольно часто почтовый сервер настроен неправильно, что также приводит к появлению сообщения «не удается отправить».

3. @opatut: он даже не получил результатов, так что не слишком удивительно, что это работает не так, как он хочет.

Ответ №1:

Вы пытаетесь отправить электронное письмо на mysql-ресурс. Сначала вы должны «извлечь» результаты с помощью, например. mysql_fetch_assoc .

Ответ №2:

Вот очень хорошая ссылка, которая поможет вам начать или улучшить свои навыки работы с mysql php

База данных и другие Животные

Обратите внимание, что вам нужно будет просмотреть результат вашего запроса, даже если у вас есть только одна запись в нем, потому что в конечном итоге у вас будет более одной записи

Ответ №3:

$recipient является ресурсом (mysql_query). Чтобы перейти к выбранному recipientEmail , вы можете использовать:

 $resource = mysql_query("SELECT recipientEmail FROM flightStatus WHERE arrivalStatus = 'Landed'");
$row = mysql_fetch_array($resource);

$mail->From = "...";
$mail->AddAdrress($row['recipientEmail']);
  

Комментарии:

1. Я думаю, важно упомянуть, что это добавляет только ПЕРВЫЙ результат к методу addAddress PHPMailer. В случае нескольких адресов вам придется добавлять результаты с помощью циклов while, for или foreach. Кстати, в этом случае, я думаю, было бы лучше использовать $row = mysql_fetch_array($result, MYSQL_ASSOC); ИЛИ $row = mysql_fetch_assoc ($result); , потому что, возможно, нет необходимости извлекать результаты числовым способом.