2017-12-27 284 views
0
ID | Client | Data | Hosting | Price | 
    |   |   |   |  | 
    |   | 2018-01-02 | Heineken | 500 | 
    |   | 2018-01-03 | Hestia | 200 | 
    |   | 2017-12-28 | Bravo  | 200 | 
    |   | 0000-00-00 |   |  | 
    |   | 0000-00-00 |   |  | 

爲什麼當我想的PHP代碼,選擇從明年開始記錄與日期2018年1月3日這是從右7天現在(2017-12-27)我的代碼不會返回任何匹配的記錄(即使有這個日期的記錄)?這是我的老嫗代碼:計劃作業(PHP) - 從明年>選擇記錄不工作

<?php 

    use PHPMailer\PHPMailer\PHPMailer; 
    include_once "PHPMailer/PHPMailer.php"; 
    include_once "PHPMailer/Exception.php"; 

    $mysqli = new mysqli('localhost', 'stdeja_przypomnien', 'admin123', 'stdeja_root'); 

    $tbl_2 = $mysqli->query("SELECT * FROM subjects WHERE date(data_waznosci) = CURDATE()+7;"); 

    if($tbl_2->num_rows == 1) { 
     $mail = new PHPMailer(); 
     foreach($tbl_2 as $email => $details) {   
      $fullname = $details['klient'] . ' ' . $details['data_waznosci']; 

      $mail->addAddress('[email protected]'); 
      $mail->setFrom('[email protected]'); 
      $mail->Subject = "Hosting - system przypomnień"; 
      $mail->isHTML(true); 
      $mail->Body = "W dniu {$details['data_waznosci']} kończy się hosting klientowi {$details['klient']} na KWOTĘ {$details['cena']}, hosting to {$details['Hosting']}"; 

      if ($mail->send()) 
       echo "Formularz został wysłany. Postaramy się odpowiedzieć jak najszybciej."; 
      else 
       echo 'Mailer Error: ' . $mail->ErrorInfo; 
     }    


} 
?> 

令人驚訝的是,當我選擇明天的日期2017年12月28日與代碼:CURDATE()+ 1選擇不工作(返回匹配的記錄「布拉沃」);

回答

0

嘗試使用DATE_ADD()

$tbl_2 = $mysqli->query("SELECT * FROM subjects 
     WHERE date(data_waznosci) = date_add(CURDATE(), INTERVAL 7 DAY);"); 
+0

WORKS謝謝! :)我想知道爲什麼CURDATE()+ 7選擇不工作.. – Hieronimes

+0

@Hieronimes好,如果我的答案是正確的請標記爲接受...看看這裏如何 http://meta.stackexchange.com/questions/5234/how-do-accepting-an-answer-work – scaisEdge

+0

您不必使用DATE_ADD函數。 MySQL可以通過'CURDATE()+ INTERVAL 7 DAY' @Hieronimes加上 –