昨日設定したcronジョブに奇妙な問題があります。次のCronJobスクリプトを実行しています。
0 7 * * * php -q /wocs/email.php
これは、私が下に置いた電子メールスクリプトを指しています。目標は、MySQLデータベースを呼び出し、署名する必要のあるチケットの数を示す電子メールをユーザーに送信するスクリプトを実行することです。phpmyadminでクエリを実行すると正しい結果が得られ、ページに結果をエコーアウトすると正しい結果が得られます。しかし、今朝の午前7時に、Cron Jobはデータベース内のすべてのユーザーに電子メールを送信しました(未処理のチケットを持っていないユーザーも含むため、何も受信していないはずであり、クエリをテストしたときに表示されません。私は自分でスクリプトを実行します)。それらはそれぞれ十数回電子メールで送信され、正確ではない番号が送信され、私は自分自身を複製することができません。
これがコードです。ブラウザで実行すると完全に機能します。バグが発生するのは、Cronジョブを実行したときだけです。
$query="
SELECT *, COUNT(*)
FROM job, user
WHERE job.jobs_osuper=user.users_id
AND job.jobs_approverid2 = 0
GROUP BY user.users_id
";
$result=mysql_query($query);
mysql_close();
$num=mysql_num_rows($result);
$conditional1=mysql_result($result,$i,"users_id");
$conditional2=mysql_result($result,$i,"jobs_osuper");
$i = 0;
while($i<$num && $conditional1 == $conditional2)
{
$name=mysql_result($result,$i,"user_fullname");
$email=mysql_result($result,$i,"user_email");
$count=mysql_result($result,$i,"COUNT(*)");
$mailfrom = "from@email.com";
$mailbcc = "bcc@email.com";
$message = "<b>$name,</b><p>You have $count ticket(s) waiting on your approval. <a href='http://url.com'>Click here to review the tickets assigned to you.</a></p>";
mail($email, "Tickets for Approval", $message, "From: $mailfrom\r\nCC: $mailbcc\r\nContent-type: text/html\r\n");
$i++;
}