防止一遍又一遍地从php mysql数据库中选择相同的数据 [英] Preventing selecting the same data over and over again from a php mysql database
问题描述
我下面的代码应从db中选择数据,然后使用变量发送SMS。我正在使用cron作业来执行脚本。问题是,当cron运行时,它还会选择已处理的数据。有人请指导我如何避免选择已经使用的数据...。
My code below should select data from db and then use the variables to send an SMS. I'm using a cron job to execute the script. The problem is that when cron runs, it also picks the already processed data. Someone please guide me on how to prevent selecting already worked on data....
//should select the fresh or new data after the first run
$sql = "SELECT name, amount, trans_id, msisdn, time_paid FROM customer";
$result1 = mysqli_query($conn, $sql);
$resultarr = mysqli_fetch_assoc($result1); // fetch data
$name = $resultarr['name'];
$amount = $resultarr['amount'];
$transaction_id = $resultarr['trans_id'];
$date = $resultarr['time_paid'];
//message template
$message = "Dear $name we have received $amount from you. MPESA transaction Id $transaction_id on $date.";
$mobilenumber = $resultarr['msisdn']; // get mobile number from array
$message_sent = $message;
$serviceArguments = array(
"mobilenumber" => $mobilenumber,
"message" => $message_sent
);
$client = new SoapClient("http://32.138.160.130:8080/smsengine/smsws?WSDL");
推荐答案
为短信状态添加新列。像sms_sent一样,此列的默认值为0,当成功发送sms时,将sms_sent值0更改为1。 msisdn,来自客户的time_paid sms_sent = 0;
Add new column for status of sms. Like sms_sent and default value of this column is 0 and when sms is successfully send then change the sms_sent value 0 to 1. ANd then sql query is: $sql = "SELECT name, amount, trans_id, msisdn, time_paid FROM customer WHERE sms_sent= 0";
//should select the fresh or new data after the first run
$sql = "SELECT id, name, amount, trans_id, msisdn, time_paid FROM customer";
$result1 = mysqli_query($conn, $sql);
$resultarr = mysqli_fetch_assoc($result1); // fetch data
$name = $resultarr['name'];
$amount = $resultarr['amount'];
$transaction_id = $resultarr['trans_id'];
$date = $resultarr['time_paid'];
//message template
$message = "Dear $name we have received $amount from you. MPESA transaction Id $transaction_id on $date.";
$mobilenumber = $resultarr['msisdn']; // get mobile number from array
$message_sent = $message;
$serviceArguments = array(
"mobilenumber" => $mobilenumber,
"message" => $message_sent
);
$client = new SoapClient("http://32.138.160.130:8080/smsengine/smsws?WSDL");
$sq = "UPDATE customer SET notification = 1 WHERE id = $resultarr['id']";
这篇关于防止一遍又一遍地从php mysql数据库中选择相同的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!