我的php生成的电子邮件没有显示我的数据库中的所有记录

时间:2014-02-18 17:45:39

标签: php mysql sql

我不知道这是什么,不按我想要的方式工作..我有一个包含一些记录的数据库,而且查询只显示第一行,而不是全部。

<?php    
$con=mysqli_connect("localhost"," "," "," ");
if (mysqli_connect_errno())
  {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM programari");
$to = "my_email@yahoo.com";
$subject = "testing mail";

while($row = mysqli_fetch_array($result))
  {   
   $body= $row['cand'];  
  }

if (mail($to, $subject, $body)) {
echo("<p>Email successfully sent!</p>");
} else {
echo("<p>Email delivery failed…</p>");
}

?>

3 个答案:

答案 0 :(得分:4)

您不小心分配到$body而不是连接。简短又甜蜜:

$body .= $row['cand'];

编辑:您还应该在循环之前将$body初始化为空字符串,以避免在第一次运行时发出通知。

答案 1 :(得分:2)

你确定它没有显示最后一行而不是第一行吗?看起来您需要使用点.将字符串连接到正文而不是直接指定它。

$body .= $row['cand'];

这会将每个$row['cand']追加到$body的末尾。您可以使用分隔符在您的电子邮件中将其分解为:

$body .= $row['cand']."\n";

答案 2 :(得分:1)

每次跑步时,你的问题就是被身体覆盖。

在while和inside之前初始化为空字符串,同时使用$ body。= $ row ['cand'];