从DB中提取3封电子邮件,并将它们分配给3个不同的变量

时间:2014-08-11 19:19:59

标签: php mysql

我有一个页面向3个电子邮件收件人发送电子邮件。电子邮件地址目前是硬编码的。我想更改它,以便我不需要编辑代码来更改电子邮件地址(电子邮件需要每两年更改一次)。我想要这样做是通过从数据库中提取电子邮件并将它们分配给自己的变量。在DB中,我有两列。 “userId”列和“email”列。我将三个不同的用户插入到数据库中。当我运行页面时,它会在DB中显示第三封电子邮件,而不是3封不同的电子邮件。我是否需要将其置于不同的for循环中?我究竟做错了什么?提前谢谢。

注意:我的电子邮件地址代码目前为$ to =“someone@somewhere.edu”;我想不必更改代码本身的电子邮件,我更喜欢通过变量完成此操作。这样就需要更改数据库中的电子邮件而不是必须编辑的代码。

$query = "SELECT email FROM timeSheetEmails WHERE userId='1'";
$query = "SELECT email FROM timeSheetEmails WHERE userId='2'";
$query = "SELECT email FROM timeSheetEmails WHERE userId='3'";
    foreach ($conn->query($query) as $row) {
    $emailOne = $row['email'];
    $emailTwo = $row['email'];
    $emailThree = $row['email'];
echo $emailOne . "<br>";
echo $emailTwo . "<br>";
echo $emailThree;
}​

3 个答案:

答案 0 :(得分:1)

$query = "SELECT email FROM timeSheetEmails WHERE userId='1'";
$query = "SELECT email FROM timeSheetEmails WHERE userId='2'";
$query = "SELECT email FROM timeSheetEmails WHERE userId='3'";

这是问题所在。您只运行一个查询,最后一个查询。为什么不收到所有电子邮件然后显示它们?

$query = "SELECT email FROM timeSheetEmails"; 
foreach($conn->query($query) as $row){
    echo $row['email'].'<br>';
}

答案 1 :(得分:0)

如果你需要每个人都需要自己的查询。你必须分别解析每个结果

for($I = 1; $I < 4; $I++)
{
    $query = "SELECT email FROM timeSheetEmails WHERE userId='$I'";
    foreach ($conn->query($query) as $row) {
    $email = $row['email'];
    echo $email. "<br>";
    }​
}

否则你可以做到

$query = "SELECT email FROM timeSheetEmails WHERE userId In ('1', '2', '3')";
foreach ($conn->query($query) as $row) {
    $email = $row['email'];
    echo $email. "<br>";
}​

答案 2 :(得分:0)

您只能通过最后一个查询,您应该使用:

 $query = "SELECT email FROM timeSheetEmails WHERE userId='1' OR userId='2' OR userId='2'";
 foreach ($conn->query($query) as $row) {
      $emails[] = $row['email'];
  }

  list($emailOne,$emailTwo,$emailThree)=$emails;