防止一遍又一遍地从php mysql数据库中选择相同的数据 [英] Preventing selecting the same data over and over again from a php mysql database

查看:131
本文介绍了防止一遍又一遍地从php mysql数据库中选择相同的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我下面的代码应从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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆