2015-11-12 2 views
0

Я пытаюсь получить столбец электронной почты из таблицы базы данных MySQL и затем отправлять им электронные письма. Ниже мой PHP код:Выберите и отправьте почту из моей базы данных

private function sendEmailTech() { 
$select = $this->pdo->prepare("SELECT email FROM tbl_tech_email"); 
try { 
    $select->execute(); 
    $data = $select->fetch(); 
    foreach($data as $datum=>$email){ 
     if ($email == '') { 
      $rows.=$email.','; 
     } else { 
      return false; 
     } 
    $rows = str_replace(',--','',$rows); 
    $to = explode(',', $rows); // to change to array 
    mail($$rows, "My Info", "Hello, I just sent a mail to You"); 
    } 
} 
catch (PDOException $e) {    
    die($e->getMessage()); 
} 

Что такое правильный способ, чтобы выбрать поле столбца из MySQL таблицы и отправки сообщений электронной почты адресатов, связанных с этой колонкой?

+0

1) не ваш, если/иначе неправильный путь вокруг? 2) Вы должны зацикливаться на выборке, а не на выбор, а затем на то, что возвращается. На данный момент вы просто получаете строку, а затем перебираете столбцы. –

+0

также используйте 'query()' вместо 'prepare()' вы не передаете никаких аргументов. 'Execute()' просто избыточно ... просто переучивать его снова и снова – samayo

+0

Является ли '$$ rows' намеренным? –

ответ

1

попробовать что-то вроде этого:

<?php 
    function sendEmailTech() { 
     $select = $this->pdo->query("SELECT email FROM tbl_tech_email"); 
     $select = $select->fetchAll(); 
     if(count($select) > 0) { 
      foreach($select AS $recipient) { 
       mail($recipient["email"], "My Info", "Hello, I just sent a mail to You"); 
      } 
     } else { 
      echo "No user to send email"; 
      die(); 
     } 
    } 
    // sendEmailTech(); 
?> 
+0

Спасибо rehmat, он работает идеально. – Oladeji

+0

Рад узнать, что это сработало :) – Rehmat

+0

@Oladeji Если он решил вашу проблему, подумайте о принятии ответа. Вот как http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work, затем вернитесь сюда и сделайте то же самое с отметкой галочки/галочки, пока он не станет зеленым. Это сообщает сообществу, что решение найдено. В противном случае другие могут подумать, что вопрос все еще открыт и может захотеть опубликовать (более) ответы. –

Смежные вопросы