我正在开发一个应用程序,它应该从mysql数据库中获取数据以发送短信。我决定使用cron job service来运行一个php脚本来获取数据并在每5分钟后发送一次短信。
我的问题是我无法弄清楚设置select语句的方法是不选择之前选择的记录。仅选择自上次运行以来新鲜的数据并发送数据。 请说,任何人都请带领我......
//fetches fresh records
$sql = "SELECT name,amount, trans_id, msisdn, time_paid FROM customer ";
$result1 = mysqli_query($conn, $sql);
$resultarr = mysqli_fetch_assoc($result1); // fetch data from db
get the variables from array
$name = $resultarr['name'];
$amount = $resultarr['amount'];
$transaction_id = $resultarr['trans_id'];
$date = $resultarr['time_paid'];
// message template to be sent
$message = "Dear $name we have received $amount from you. MPESA transaction Id $transaction_id on $date.";
// requirements to send sms
$mobilenumber = $resultarr['msisdn']; // get mobile number from array
$message_sent = $message;
//passing them as service arguments
$serviceArguments = array(
"mobilenumber" => $mobilenumber,
"message" => $message_sent
);
//webservice to send sms
$client = new SoapClient("http://50.33.64.16:8080/smsengine/smsws?WSDL");
$result = $client->process($serviceArguments);
return $result;
答案 0 :(得分:2)
一个可能的想法是将所有已处理的记录转储到表中(比如tbl2),下次当你要获取记录时,选择主表中不存在于表tbl2中的所有记录。
SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL