0

我试图生成一封电子邮件以在正文中包含一些排序数据。我的电子邮件发送但没有函数正文中的数据。by 函数也是 while 循环,如果有意义,它们会生成回显的 html 内容?这是功能之一。

function ye($coid){
$yest = date("Y-m-d", time() - 86400);
$inouty= mysql_query("SELECT clockings.id AS cid,clockings.uid, clockings.con,        clockings.coff, staff.sname ,staff.id, staff.act, staff.coid FROM clockings LEFT JOIN staff ON clockings.uid=staff.id WHERE clockings.dte = '$yest' AND staff.coid =$coid ORDER BY staff.id, clockings.id")or die(mysql_error());
     while ($row = mysql_fetch_assoc($inouty)) {
       $sname= $row['sname'];
       $in=  $row['con'];
       $out= "- ". $row['coff'];
       $id = $row['cid'];               
echo"$sname $in $out<br>";}}   

这就是我所说的

$html_text = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
                  <html>
                     <head>
                        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
                        <title>Email</title>
                     </head>

                     <body>details Current status for $nicedate as of $now<br>". tod($coid)."<br>Yesterdays Clockings<br>". ye($coid)."</body>
                  </html>";

不,如果我将函数更改为返回值而不是回显,我只得到第一行结果而不是完整循环,但这包含在电子邮件正文中,以及当我使用 echo 在脚本末尾调用函数时在我的函数中,我得到了所需的输出。有什么办法可以让它工作吗?在此先感谢尼克

4

1 回答 1

0

由于您的调用试图包含函数的结果,因此您只需要确保返回沿途生成的所有行。有很多方法可以做到这一点,这里有一个:

function ye($coid)
{
  $yest = date("Y-m-d", time() - 86400);
  $inouty= mysql_query("SELECT clockings.id AS cid,clockings.uid, clockings.con,        clockings.coff, staff.sname ,staff.id, staff.act, staff.coid FROM clockings LEFT JOIN staff ON clockings.uid=staff.id WHERE clockings.dte = '$yest' AND staff.coid =$coid ORDER BY staff.id, clockings.id")or die(mysql_error());

  $result = "";

  while ($row = mysql_fetch_assoc($inouty)) {
     $sname = htmlspecialchars($row['sname']);
     $in    = htmlspecialchars($row['con']);
     $out   = "- ". htmlspecialchars($row['coff']);

     $result .= "$sname $in $out<br>";
  }

  return $result;
} 
于 2013-08-17T02:00:35.517 回答