2015-07-12 2 views
0

Привет, я использую PHP-почту для отправки сообщений из БД> Однако с приведенным ниже кодом я получаю несколько электронных писем из одного запроса. Следовательно, если запрос имеет 10 результатов, я получаю 10 писем. Как можно разобраться. СпасибоPHP mail отправить запрос MYSQL

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname = "test"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "SELECT stimee, pango,kembo FROM layla"; 

$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 



    $msg = "Time: " . $row["stimee"]. " - pango: " . $row["pango"]. " " . $row["kembo"] . "<br>"; 


    $msg = wordwrap($msg,70); 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'From: Benge Man <[email protected]>' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 


    mail("[email protected]","Notification",$msg,$headers); 

    } 
    } else { 
    echo "0 results"; 
    } 

mysqli_close($conn); 
?> 
+0

Перемещение 'mail' вне' while' цикла. Перемещайте '$ headers' за пределами времени, а затем создайте' $ msg' concatenate. – chris85

+0

Почтовая команда находится внутри вашей петли. вам нужно аккумулировать свои данные в массиве в цикле while, а затем использовать 'mail' вне цикла – amdixon

ответ

2

Построить сообщение внутри цикла, но после этого отправить почту. Таким образом, вы получаете одну почту со всеми данными в ней.

$msg = ""; 
if (mysqli_num_rows($result) > 0) { 

    // append data of each row to $msg. 
    while($row = mysqli_fetch_assoc($result)) { 
    $msg .= "Time: " . $row["stimee"]. " - pango: " . $row["pango"]. " " . $row["kembo"] . "<br>"; 
    } 

    // After all the rows are fetched, send the message. 
    $msg = wordwrap($msg,70); 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'From: Benge Man <[email protected]>' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

    mail("[email protected]","Notification",$msg,$headers); 
} else { 
    echo "0 results"; 
} 
0

Вы должны отправить почту за пределами вашего цикла, как это:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname = "test"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "SELECT stimee, pango,kembo FROM layla"; 

$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 



$msg = "Time: " . $row["stimee"]. " - pango: " . $row["pango"]. " " . $row["kembo"] . "<br>"; 


$msg = wordwrap($msg,70); 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'From: Benge Man <[email protected]>' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 




    } 
mail("[email protected]","Notification",$msg,$headers); 
    } else { 
    echo "0 results"; 
    } 

mysqli_close($conn); 
?>