2017-01-17 6 views
0

この問題のため、今は1日以上の間違いがあります。私は設定された量でCronによって呼び出されるPHPを持っています。それは呼び出され、スタイリング以外の多くの問題なしでうまく実行されます。それは、設定された時間にデータベースに照会し、値が真であれば、それをスクリプトに入れた指定の電子メールに電子メールで送ります。それは仕事ですが、問題は電子メールが配信されるときの形式です。問題SQL値がTrueのときにメールを送信

Email format image

、あなたが見ることができるように最初の行のみまたは行がテーブルの上にフォーマットされ、結果の残りの部分は、それに従っていないということである:電子メールは、私はそれを開くとこのようになります。

ここには、一部の省略/変更された詳細を使用している現在のスクリプトがあります。

#!/path/to/php 
<?php 
//DB 
$dbconnect=new mysqli('localhost', 'user', 'pass', 'db'); 
$result=$dbconnect->query("SELECT `uid`,`pid`,`pdesc`,`umail`,`name` FROM `db_table` WHERE `pid`<='6'"); 
//if there are any records matching this query send an email listing each one using 'uid' as the identifier 
if($result->num_rows>=1) { 
$to = '[email protected]'; 
$subject = "TEST FOR PRIZES NOTIFICATION"; 

$headers = 'From: [email protected]' . "\r\n" . 
$headers = "MIME-Version: 1.0" . "\r\n" . 
$headers = "Content-type:text/html;charset=iso-8859-1" . "\r\n" . 
     'Reply-To: [email protected]' . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 

$message = '<html><body>'; 
$message .= 'THIS IS A TEST!'; 
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">'; 
$message .= '<tr> 
      <td>User ID</td> 
      <td>Display Name</td> 
      <td>Email</td> 
      <td>Price</td> 
    <td>Price Description</td></tr>'; 
while($row=$result->fetch_assoc()) { 
    $message .= "<tr><td>".$row['uid']."</td>"; 
    $message .= "<td>".$row['name']."</td>"; 
    $message .= "<td>".$row['umail']."</td>"; 
    $message .= "<td>".$row['pid']."</td>"; 
    $message .= "<td>".$row['pdesc']."</td></tr>"; 
    $message .= "</table>"; 
    $message .= "</body></html>"; 
} 
if(mail($to, $subject, $message, $headers)) { 
    //mail successfully sent 
} else { 
    //mail unsuccessful 
} 
} 
?> 

ありがとうございました!

+0

whileループの外でテーブルを閉じる –

答えて

0

ループ内でテーブルを閉じるので、最初のエントリの後に閉じます。このことから、あなたのコードを変更します。これに

while($row=$result->fetch_assoc()) { 
    $message .= "<tr><td>".$row['uid']."</td>"; 
    $message .= "<td>".$row['name']."</td>"; 
    $message .= "<td>".$row['umail']."</td>"; 
    $message .= "<td>".$row['pid']."</td>"; 
    $message .= "<td>".$row['pdesc']."</td></tr>"; 
    $message .= "</table>"; 
    $message .= "</body></html>"; 
} 

を:

while($row=$result->fetch_assoc()) { 
    $message .= "<tr><td>".$row['uid']."</td>"; 
    $message .= "<td>".$row['name']."</td>"; 
    $message .= "<td>".$row['umail']."</td>"; 
    $message .= "<td>".$row['pid']."</td>"; 
    $message .= "<td>".$row['pdesc']."</td></tr>"; 
} 
$message .= "</table>"; 
$message .= "</body></html>"; 

が最後にテーブルを閉じます。

+0

私はそれを最後に試したかもしれないと思うが、間違っているかもしれないがそれは進まなかった。私はあなたが答えとしてあなたを選ぶでしょう。だから、事前に感謝! –

関連する問題