2016-04-24 82 views
0

我正在向我的订阅者发送电子邮件,并且所有电子邮件地址都被插入到MYSQl的表中。但有了它,我想发送一些位于同一数据库的其他表中的文章。请帮帮我。在“$ name”中它只提取1行(我想获取所有给定ID的数据)。无法使用PHP发送电子邮件时从MYSQL获取数据

<?php if(isset($_POST['send'])){ 
$servername = "localhost"; 
$username = "username "; 
$password = "password "; 
$dbname = "db"; 

$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM table1 where id in (1, 3, 2, 4)"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 

$name = $row["title"]; 

}}else {} 
$conn->close(); 
} 
?> 

<?php if(isset($_POST['send'])){ 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "db"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT email, subid FROM table2"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) {while($row = $result->fetch_assoc()){ 

$subid = $row["subid"]; 

$email_to = $row["email"]; 
$subject = "Newsletter | OnlineDealsIndia"; 
$header = "From: OnlineDealsIndia <[email protected]>\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=utf-8\r\n"; 
$header.= "X-Priority: 1\r\n"; 

$message = '<h3>Todays Top Deals!</h3><hr> 

<li>' .$name. '</li> 

<a href="http://www.onlinedealsindia.in/newsletter/unsubscribe/?subid=' .$subid. '">Click Here</a> To Unsubscribe 
'; 
mail($email_to,$subject,$message,$header); 
}}else {} 

$conn->close(); 
} 
?> 

在“$ name”中,它应该获取上面提供的id的所有行。

所有的答案将不胜感激。谢谢!

+0

在一个循环中,您要提取'$ name',然后一遍一遍将它设置为同一个地方。你不想把它添加到数组吗? – tadman

+0

它不能是“$ name”应该获取所有4行并显示。 –

+0

'$ name = $ value'不会神奇地累积列表。 '$ name [] = $ value'将被添加到数组中。 – tadman

回答

0

这应该做的伎俩:

<?php if (isset($_POST['send'])) { 
    $servername = "localhost"; 
    $username = "username "; 
    $password = "password "; 
    $dbname  = "db"; 

    $conn = new mysqli($servername, $username, $password, $dbname); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT * FROM table1 where id in (1, 3, 2, 4)"; 
    $result = $conn->query($sql); 

    $subject = "Newsletter | OnlineDealsIndia"; 
    $header = "From: OnlineDealsIndia <[email protected]>\r\n"; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-Type: text/html; charset=utf-8\r\n"; 
    $header .= "X-Priority: 1\r\n"; 

    $message = '<h3>Todays Top Deals!</h3><hr><ul>'; 
    if ($result->num_rows > 0) { 
     while ($row = $result->fetch_assoc()) { 
      $message .= '<li>' . $row["title"] . '</li>'; 
     } 
    } 
    $message .= '</ul><a href="http://www.onlinedealsindia.in/newsletter/unsubscribe/?subid=' . $subid . '">Click Here</a> To Unsubscribe'; 

    $sql = "SELECT email, subid FROM table2"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     while ($row = $result->fetch_assoc()) { 
      $subid = $row["subid"]; 
      $email_to = $row["email"]; 
      mail($email_to, $subject, $message, $header); 
     } 
    } 

    $conn->close(); 
} 
?> 
+0

打开和关闭以及然后重新开放似乎毫无意义。 – tadman

+0

有很多空间来改善这个代码,我尽可能少地做了一些修改,使它能够显示如何解决这个问题的特定问题。 –

+0

是的,不是真的让你失望,只是做一个观察。 – tadman