• 15-03-2019, 23:09:42
    #1
    Merhabalar,
    Bir hatırlatıcı sistemi yazdım takvim gibi ve ilk 5 tarihi bana sms olarak bildirmesini istiyorum.
    Sms modülü tamam. (iletimerkezi)
    Herşey hazır tek sorun. ilk 5 tarihli verileri çekiyorum fakat sms modülü $mesaj değişkenini gönderiyor. Fakat veritabanından gelen 5 veri olduğu için değişkende sıkıntı yaşıyorum. Aşağıda daha detaylı anlatacağım.


    <?php
    require_once ('baglan.php');
    require_once ('includes/sms.class.php');
        $sms = new smsGonder;
        $numara = '05419565455';
    $hatirlatilacakcek=mysql_query("SELECT * FROM hatirlat ORDER BY start ASC");
    while($hc=mysql_fetch_array($hatirlatilacakcek)){
       echo $hc['title'].' - '.date('d.m.Y', strtotime($hc['start'])).'<br />';
    }
        $mesaj  = 'Bu bir deneme mesajıdır.';
        $cevap = $sms->sendSms($numara, $mesaj);
      
    if ($cevap == '200') {
        $sobakiye=$sms->getBalance();
        $smslogkayit=mysql_query("INSERT INTO smsonay (sodurum,sobakiye,sohata) VALUES ('1','$sobakiye','$cevap')");
    }else {
        $sobakiye=$sms->getBalance();
        $smslogkayit=mysql_query("INSERT INTO smsonay (sodurum,sobakiye,sohata) VALUES ('2','$sobakiye','$cevap')");
    }
    ?>
    Bu kodlarda görülen 8inci satırda; ilk 5 hatırlatıcı ismi ve tarihi gösteriyor.
    10uncu satırda; mesaj değişkeni içinde istenilen mesaj sms olarak gönderiliyor.
    Benim yapmak isteyip yapamadığım ise mesaj değişkenine while döngüsünden gelen verileri tek seferde yazdırıp sms olarak gönderebilmek.

    Bunu nasıl yapabilirim sizce? Açıklayıcı şekilde yazarsanız çok memnun olurum. Şimdiden teşekkür ederim.
  • 16-03-2019, 11:06:58
    #2
    <?php
    require_once ('baglan.php');
    require_once ('includes/sms.class.php');
    
    $sms = new smsGonder;
    $numara = '05419565455';
    
    $hatirlatilacakcek = mysql_query("SELECT * FROM hatirlat ORDER BY start ASC");
    
    while ($hc = mysql_fetch_array($hatirlatilacakcek))
    {
        $mesaj = $hc['title'].' - '.date('d.m.Y', strtotime($hc['start'])).'<br />';
        $cevap = $sms->sendSms($numara, $mesaj);
        
        if ($cevap == '200')
        {
            $sobakiye = $sms->getBalance();
            $smslogkayit = mysql_query("INSERT INTO smsonay (sodurum,sobakiye,sohata) VALUES ('1','$sobakiye','$cevap')");
        }
        else
        {
            $sobakiye = $sms->getBalance();
            $smslogkayit = mysql_query("INSERT INTO smsonay (sodurum,sobakiye,sohata) VALUES ('2','$sobakiye','$cevap')");
        }
    }
    ?>
    Anladığım kadarıyla veritabanından çekilen sorgudan dönen her bir kayıt için tek tek SMS göndermek istiyorsunuz. Bunun için SMS gönderim kısmını üstte yaptığım gibi WHILE döngüsü içerisine taşımak gerekiyor.

    Ayrıca cep telefonu numarasını bir değişkene tanımlamak yerine dinamik yapıp, veritabanından sadece o numaraya ait kayıtları sorgulamak istiyorsanız SQL sorgusunu da modifiye etmelisiniz.

    SELECT * FROM hatirlat WHERE numara = '05419565455' ORDER BY start ASC
    Veritabanında kolon isminin numara olduğunu varsayarsak bu şekilde bir sorgulama yapabilirsiniz.