2016-06-12 15 views
0

Ich entwickle eine Anwendung, die Daten aus MySQL-Datenbank abrufen sollte, um SMS zu senden. Ich bin entschlossen, Cron-Job-Service zu verwenden, um ein PHP-Skript auszuführen, um die Daten abzurufen und die SMS nach jeweils 5 Minuten zu senden.PHP mysql Select-Anweisung ohne Wiederholung

Mein Problem ist, ich kann einfach nicht herausfinden, wie die Select-Anweisung eingerichtet wird, um einen zuvor ausgewählten Datensatz NICHT auszuwählen. Es werden nur frische seit dem letzten Durchlauf ausgewählt und Daten gesendet. Bitte, führen mir einer bitte ...

//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; 

Antwort

2

Eine mögliche Idee alle verarbeiteten Datensatz in einer Tabelle zu entleeren sein könnte (etwa tbl2) und das nächste Mal, wenn Sie Datensätze holen gehen, markieren den Datensatz aus Primärtabelle, die in der Tabelle tbl2 nicht existiert.

SELECT t1.name 
FROM table1 t1 
LEFT JOIN table2 t2 ON t2.name = t1.name 
WHERE t2.name IS NULL 
Verwandte Themen