使用SQL表发送电子邮件的Php邮件程序

时间:2012-10-19 04:05:42

标签: php mysql

我喜欢自己学习和做事,但是我遇到了一个我不知道如何修理的泡菜。

我正在尝试为公告系统编写一个php群发邮件程序,我可以通过按钮在管理页面中激活。

这是当前脚本的样子。

function sendStreamAnnounce(){
  global $database, $session, $mailer, $form;      
    $q = "SELECT username,email"
        ."FROM ".TBL_USERS."";
    $result = $database->query($q);
    $num_rows = mysql_numrows($result);

   for($i=0; $i<$num_rows; $i++){
    $email  = mysql_result($result,$i,"email");

     /* Attempt to send the email with new password */
     if($mailer->sendStreamAnnounce($email))
    $_SESSION['mailed'] = true;
          else{
    $_SESSION['forgotpass'] = false;

     }
      header("Location: ".$session->referrer);
    }
}

目前的设置让我知道了这个

http://puu.sh/1gkgg.jpg

我以某种方式改编了这个来自“我忘了密码”的PHP脚本,该脚本附带了我正在使用的教程式后端。我意识到可能不需要“$ _SESSION”之类的东西。

欢迎任何帮助!我知道很多人不喜欢喂食,所以暗示也会帮助我。

提前谢谢你们!

编辑:我在Arun的帮助下自行修复了它!

 function sendStreamNotice(){
  global $database, $session, $mailer, $form;      
    $q = "SELECT username,email "
        ."FROM ".TBL_USERS."";
    $result = $database->query($q);
    $num_rows = mysql_num_rows($result);
  if(!$result || ($num_rows < 0)){
  echo "Error displaying info";
  return;
}
  if($num_rows == 0){
  echo "Database table empty";
  return;
}

for($i=0; $i<$num_rows; $i++){
    $email  = mysql_result($result,$i,"email");
    $user = mysql_result($result,$i,"username");

     /* Attempt to send the email with new password */
     if($mailer->sendStreamNotice($user,$email))
    $_SESSION['mailed'] = true;
          else{
    $_SESSION['forgotpass'] = false;

     }
      header("Location: ".$session->referrer);
    }
}

电子邮件通过就好了!

http://puu.sh/1gkRx.jpg

1 个答案:

答案 0 :(得分:0)

使用$num_rows = mysql_num_rows($result);代替mysql_numrows($result);