2016-06-12 4 views
0

Я разрабатываю приложение, которое должно извлекать данные из базы данных mysql для отправки sms. Я решил использовать службу заданий cron для запуска php-скрипта для получения данных и отправки sms через каждые 5 минут.php mysql select statement без повторения

Моя проблема в том, что я просто не могу понять, как настроить инструкцию 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; 

ответ

2

Возможной идее могла бы сбросить все обработанные записи в таблице (скажу tbl2) и в следующий раз, когда вы собираетесь получать записи, выберите все записи из первичная таблица, которая не существует в таблице tbl2.

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