1

こんにちは私は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ループデータを電子メールメッセージの本文に添付する方法を教えてもらえますか。つまり、このテキスト(Hello World!)を本文で送信する代わりに、ループデータを送信したいのです。

4

4 に答える 4

1

:を連結し$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);
于 2012-09-08T08:32:26.250 に答える
1

以下のような純粋な文字列連結:

   $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
于 2012-09-08T08:32:38.820 に答える
0

私はこれがあなたが求めているものだと思います:

    $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 );
    }

これにより、ループごとにメールが送信されます。あなたがそれを望むかどうかはあなたの質問からは明らかではありません。すべてのデータを収集し、1通のメールとして送信できます。

$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 );
于 2012-09-08T08:33:54.263 に答える
0
<?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);

?>
于 2012-09-08T08:40:50.743 に答える