2017-07-10 17 views
-1

私のデータベースに2つのテーブルがあります。メールアドレスが両方のテーブルに存在しないかどうかを確認するクエリを実行しました。ユーザーが一意であることを確認するために使用します。私はスクリプトを実行し、それは完璧に動作し、私はエコーを行い、10反復(電子メールは重複していない10の異なるユーザー)を取得します。今私は各反復のための電子メールを送信する必要があります、問題は、私は私のメール機能を追加するとき私は1人のユーザーを受信して​​いる唯一のemaiが送信され、どのように私は10人のユーザー、各ユーザーごとに1つの電子メールを達成することができます。PHPのmysqlクエリの結果ごとに電子メールを送信

<?php 
include 'myDB.php'; 

$sql = " query works fine "; 
$result = mysqli_query($conn, $sql); 

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

    foreach ($row as $key => $gtm) { 
    $message .= $gtm; 
    $header ="From: [email protected]" . "\r\n"; 
    $para = '[email protected]'; 
    $header .= "MIME-Version: 1.0\r\n"; 
    $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
    $titulo = 'Mailing list Newsletter'; 
    $message = '<html><body>'; 
    $message .= '<br/> <p>El siguiente usuario abandono el la compra de un paquete en booking hello </p><br/>'; 
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="2">'; 
    $message .= "<tr><td><strong>Nombre del paquete:</strong> </td><td>" . $row["nombre_del_paquete"]."</td></tr>"; 
    $message .= "<tr><td><strong>Precio Total del paquete:</strong> </td><td>". $row["precio_total"]."</td></tr>"; 
    $message .= "<tr><td><strong>Nombre:</strong> </td><td>" . $row["nombre"]. "</td></tr>"; 
    $message .= "<tr><td><strong>Apellido:</strong> </td><td>" . $row["apellido"]."</td></tr>"; 
    $message .= "<tr><td><strong>Email:</strong> </td><td>" . $row["email"]. "</td></tr>"; 

    $message .= "</table>"; 
    $message .= "</body></html>"; 



    if(mail($para, $titulo, $message, $header)){ 
     echo "recorded successfully"; 
       die(); 
    }else{ 
     echo "false"; 
    } 

    } 

} 
} else { 
echo "0 results"; 
} 


?> 

私が唯一の1人のユーザー(1 1)を取得するときにメールfucntionが追加したときに、今、私はメール機能を削除し、私はエコーをすれば、すべてのユーザー(10)

+0

_please_のクリーンアップあなたのコード –

+0

あなたが "TO:" = $ヘッダーのように$ヘッダーでちょうど1つの電子メールアドレスを使用する$行[ "電子メール"]に送信されます。 $ row ["email"]。 "\ r \ n"; –

答えて

3

削除を取得die()

foreach ($row as $key => $gtm) { 
    // more cod here: 

    // your problem is in this if: 
    if(mail($para, $titulo, $message, $header)){ 
     echo "recorded successfully"; 
     // die(); this stops the execution 
    }else{ 
     echo "false"; 
    } 
} 
+0

私はこれをしましたが、私は400のメールのようになって、ちょうど10、ここで休憩を設定するかどうか、もし将来的に私は15,20を持っていればそれは停止し、同じユーザーの複数のタイル –

+0

私の最初の質問は、なぜ 'while'の' foreach'でしょうか。これを見てみましょう:https://pastebin.com/Bsp6wk8kあなたのスクリプトを少し修正しました –

+0

私はそれを削除しました。それは汚れていましたが、単純にdie()を削除するだけで、完璧に動作します。ありがとうございました –

関連する問題