-1

「ラップトップ」という名前のテーブルと、「Lap_War_Expiry」という名前のテーブル内の列があります。コードは、以前の投稿で編集したものと同じようにうまく実行されます。電子メールで複数のデータを取得するにはどうすればよいですか? . ただし、コードは 45 個のデータに対してのみ実行されます。100個のデータであるはずで、ユーザーにメールを送信しました。(メールが多すぎるように聞こえるかもしれませんが、データを 1 つのメールに結合する前に、まずすべてのデータが取得されていることを確認する必要があります)

以下の php.ini 設定を変更しようとしましたが、必要なメールをすべて取得できません。これ以外に変更すべきところはありますか?それとも私の設定が正しくないのでしょうか?

max_execution_time = 0     ; Maximum execution time of each script, in seconds
max_input_time = 0  ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = -1 ; Maximum input variable nesting level
memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)

これは、電子メールを送信するための私のコーディングです:

<?php
//class.phpmailer.php here

// ======== get database data ==================
$link = mysql_connect("localhost","root","");
$database="master_inventory";
mysql_select_db ($database,$link) OR die ("Could not open $database" );
 $query2 = 'SELECT Lap_PC_Name, Lap_War_Expiry FROM laptop'; 
 name.
 $result1 = mysql_query($query2);

while($row = mysql_fetch_array($result1)) {
$Lap_PC_Name = $row['Lap_PC_Name'];
$Lap_War_Expiry = $row['Lap_War_Expiry'];

$date=$row['Lap_War_Expiry'];
// $date is get from table
$date = date ('d-m-Y')||('d/m/Y') + (7 * 24 * 60 * 60);
$newdate = strtotime ( '+45 days' , strtotime ( $row['Lap_War_Expiry']) ) ;
$newdate = date ( 'd/m/Y' , $newdate );
if ($newdate <45) {
$mail->Username = "myemail@gmail.com";
$mail->Password = "password";

//sent email code is here

if(!$mail->Send())
echo "Message was not sent <br />PHPMailer Error: " . $mail->ErrorInfo;
   else
echo "Message has been sent";
}
  else {
 echo "No PC expired less than 45 days for today.    ";
    }
 }

?>
4

1 に答える 1

0

何か関係があるのではないかと思います$newdate < 45

これを 50 に変更すると、50 件のレコードが返されるはずです。または、何が印刷されているかがわかるようにelseステートメントを入れます。$newdate > 45

また、PHP ではなく SQL でロジックを実行する必要があります。最初の選択クエリでフィルタリングを行う必要があります。それはそれをより簡単かつ迅速にするでしょう。

于 2013-09-27T05:39:42.560 に答える