PHP发送带有循环数据的电子邮件

PHP发送带有循环数据的电子邮件,php,Php,您好,我想使用php邮件函数发送循环数据。以下是我的代码: foreach ($data['query'] as $row){ echo $row->name; echo "<br>"; echo $row->time; echo "<br>"; echo $row->dosage; echo "<br>"; echo $row->frequency; echo "<

您好,我想使用php邮件函数发送循环数据。以下是我的代码:

foreach ($data['query'] as $row){
    echo $row->name;
    echo "<br>";
    echo $row->time;
    echo "<br>";
    echo $row->dosage;
    echo "<br>";
    echo $row->frequency;
    echo "<br>";
    echo $row->quantity;
    echo "<br>";
}

$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com";
mail($to,$subject,$txt,$headers);
foreach($data['query']作为$row){
echo$row->name;
回声“
”; echo$row->time; 回声“
”; echo$行->剂量; 回声“
”; 回波$行->频率; 回声“
”; echo$行->数量; 回声“
”; } $to=”somebody@example.com"; $subject=“我的主题”; $txt=“你好,世界!”; $headers=“From:webmaster@example.com"; 邮件($to、$subject、$txt、$headers);

谁能告诉我如何将foreach循环数据附加到电子邮件正文中,我的意思是,我不想在正文中发送此文本(Hello World!),而是想发送循环数据。

连接
$txt

$txt = "";
foreach ($data['query'] as $row){
    $txt .= $row->name;
    $txt .= "<br>";
    $txt .= $row->time;
    $txt .= "<br>";
    $txt .= $row->dosage;
    $txt .= "<br>";
    $txt .= $row->frequency;
    $txt .= "<br>";
    $txt .= $row->quantity;
    $txt .= "<br>";
}

$to = "somebody@example.com";
$subject = "My subject";
$headers = "From: webmaster@example.com";
mail($to,$subject,$txt,$headers);
$txt=”“;
foreach($data['query']作为$row){
$txt.=$row->name;
$txt.=“
”; $txt.=$row->time; $txt.=“
”; $txt.=$row->剂量; $txt.=“
”; $txt.=$row->频率; $txt.=“
”; $txt.=$row->数量; $txt.=“
”; } $to=”somebody@example.com"; $subject=“我的主题”; $headers=“From:webmaster@example.com"; 邮件($to、$subject、$txt、$headers);
纯字符串连接,如下所示:

   $str = ''; 
   foreach ($data['query'] as $row){
      $str .= $row->name;
      $str .= "<br>";
      $str .= $row->time;
      $str .= "<br>";
      $str .= $row->dosage;
      $str .= "<br>";
      $str .= $row->frequency;
      $str .= "<br>";
      $str .= $row->quantity;
      $str .= "<br>";
    }

    $to = "somebody@example.com";
    $subject = "My subject";
    $headers = "From: webmaster@example.com";
    mail($to,$subject,$str,$headers);

    $str = ''; // empty the $str again
$str='';
foreach($data['query']作为$row){
$str.=$row->name;
$str.=“
”; $str.=$row->time; $str.=“
”; $str.=$row->剂量; $str.=“
”; $str.=$row->频率; $str.=“
”; $str.=$row->数量; $str.=“
”; } $to=”somebody@example.com"; $subject=“我的主题”; $headers=“From:webmaster@example.com"; 邮件($to、$subject、$str、$headers); $str='';//再次清空$str
我想这就是你想要的:

    $to = "somebody@example.com";
    $subject = "My subject";
    $txt = "Hello world!";
    $headers = "From: webmaster@example.com";

    foreach ( $data['query'] as $row ) {
      $txt = $row->name;
      $txt .= "<br>";
      $txt .= $row->time;
      $txt .= "<br>";
      $txt .= $row->dosage;
      $txt .= "<br>";
      $txt .= $row->frequency;
      $txt .= "<br>";
      $txt .= $row->quantity;
      $txt .= "<br>";

      mail( $to, $subject, $txt, $headers );
    }
$to=”somebody@example.com";
$subject=“我的主题”;
$txt=“你好,世界!”;
$headers=“From:webmaster@example.com";
foreach($data['query']作为$row){
$txt=$row->name;
$txt.=“
”; $txt.=$row->time; $txt.=“
”; $txt.=$row->剂量; $txt.=“
”; $txt.=$row->频率; $txt.=“
”; $txt.=$row->数量; $txt.=“
”; 邮件($to、$subject、$txt、$headers); }
这会为每个循环发送一封邮件。你的问题不清楚你是否想要这样。您可以收集所有数据,并将其作为一封电子邮件发送:

$to = "somebody@example.com";
$subject = "My subject";
$txt = "";
$headers = "From: webmaster@example.com";

foreach ( $data['query'] as $row ) {
  $txt .= $row->name;
  $txt .= "<br>";
  $txt .= $row->time;
  $txt .= "<br>";
  $txt .= $row->dosage;
  $txt .= "<br>";
  $txt .= $row->frequency;
  $txt .= "<br>";
  $txt .= $row->quantity;
  $txt .= "-- end of row<br>";

}

mail( $to, $subject, $txt, $headers );
$to=”somebody@example.com";
$subject=“我的主题”;
$txt=”“;
$headers=“From:webmaster@example.com";
foreach($data['query']作为$row){
$txt.=$row->name;
$txt.=“
”; $txt.=$row->time; $txt.=“
”; $txt.=$row->剂量; $txt.=“
”; $txt.=$row->频率; $txt.=“
”; $txt.=$row->数量; $txt.=“--行的末尾
”; } 邮件($to、$subject、$txt、$headers);


只剩下一个问题,
在已发送邮件中不起作用。您可以提供帮助吗?您必须将标题设置为HTML或添加
$txt.=“\n”而不是

<?php
$dataArray  =   array('name','time','dosage','frequency','quantity');
$txt        =   '';
foreach ($data['query'] as $row)
{
    foreach($dataArray as $key=>$data)
    {
       $txt .= ($row->$data.'</br>');
    }
}

$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com";
mail($to,$subject,$txt,$headers);

?>