Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Sınırlı Veri Çekmek Aynı Veriyi Bir Daha Çekmemek

Merhaba, Mailing göderimi yapıyorum aracı bir firma ile bu firma saatte 40 mail göndermeme izin veriyor. Veritabanımda 2 tane tablo var;
1. Tablo: Mailing
2. Tablo: MailingRapor

Saatte 40 tane göndereceğim için ilk 40 kişiye gönderiyorum ve MailingRapor tablosuna konu id ve uye id olarak kaydediyorum. Buraya kadar sıkıntı yok. Sıkıntı şurada başlıyor. 2. Kez çalıştırdığımda kodu yine ilk 40 kişiyi alıyor.

Yapmak istediğim mail göndermeden önce MailingRapor tablosu kontrol edilecek eğer varsa bu 40 veri içerisine dahil edilmeyecek.

Aşağıda nasıl mail gönderdiğim ile ilgili php kodlarım var. Burada ne gibi bir işlem yapmam gerekir?


//$kullanicikontrol = $db->get_var("SELECT count(*) FROM mailingrapor WHERE  uyeid='$kullaniciveri->id'");
$sablonal = $db->get_row("SELECT * FROM mailingkonu WHERE id = '1'");


$sonuclar = $db->get_results("SELECT * FROM uyeler  LIMIT 40");
foreach ($sonuclar as $sonuc) {
	$kullanicikontrol = $db->get_var("SELECT count(*) FROM mailingrapor WHERE uye='$sonuc->id' and mailingkonu = '1' ");
	
	echo $kullanicikontrol;
	

$aliciisim = $sonuc->adsoyad;
$alici = $sonuc->mail;

if(!empty($alici)){



if($kullanicikontrol == 0){

$mailin = new Mailin('XXXXXXX', 'XXXXXX');
$mailin->
	addTo(''.$alici.'', ''.$aliciisim.'')->
	setFrom('XXXXX', 'XXXXX')->
	setReplyTo('XXXX','XXXXX')->
	setSubject($sablonal->konu)->
	setText($sablonal->icerik)->
	setHtml($sablonal->icerik);
$res = $mailin->send();

echo "başarılı";

$db->query("INSERT INTO mailingrapor SET mailingkonu='$sablonal->id', uye='$sonuc->id'");

}else{
	echo 'zaten gönderildi bu kullanıcıya <br>';
}

}else{
	echo "HATA <br>";
}

}
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • ercet00ilk adlı üyenin fotoğrafı
    10 ay önce yazılmış
    96 cevap - 18 soru
    1- Tabloya bir MailGonderildiMi alanı ekle true false yap,
    2- Sitem ilk mail atmaya başlamadan MailGonderildiMi hepsini false yap,
    3- Her mail atılanı MailGonderildiMi true yap
    4- Fonksiyonu tekrar çalıştığında ise MailGonderildiMi true olanları listeye dahil etme..

    kolay gelsin.