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

Php ile Üyelere Mesaj Gönderme İşlemi Ancak!

Merhaba,
Üyelere mesaj gönderme uygulaması yapmak istiyorum.
Piyasadaki üyelik uygulamalarını inceliyorum.
Genelde mantık karşılıklı mesajlaşma üzerine..
Ancak benim kafamdaki model klasik mesajlaşma işlemi değil. Çünkü bu sistemler her mesaj için bir satır eklemekteler.

Benim istediğim sistem ise şu şekilde.

Üyeler sadece mesaj okuyacak mesaj gönderme yapmayacaklar burası zaten klasik...
Admin ise tüm üyelere ya da bazı gruptaki üyelere aynı mesajı gönderecek.

Klasik üyelik sistemlerinde örneğin 200 üyeye mesaj gönderilecekse 200 satır aynı mesajı yazmak gerekiyor.
Bu tek tek farklı mesajlar için normak ancak aynı içöerikteki bir mesajı 200 defa tekrar etmek mantıklı bir database mimarisi değil.

Burada yapılması gereken gönderilen mesaj 1 defa kaydedilmeli ve 200 üyeye gidecekse bu 200 üyenin id numarası mesajlar tablosundaki ilgili mesaj satırının bir alanına eklenmelidir.

Mantığını biliyorum ancak php de henüz yeni olduğum için bu türd çalışan bir scripti inceleyerek yazabilirim.

Ancak bu anlattığım mantıkla çalışan bir sistem bilmiyorum.

Bu mantıkta inceleyebileceğim tavsiye edeceğiniz örnek uygulamalar var mıdır?
ya da ne tür scriptlerde bu mantıkta uygulamalar kullanılmış olabilir.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • kralmermi adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    102 cevap - 6 soru
    olayı zaten çözmüşsün nasil yapacagin belli

    mesaj_id - mesaj_baslik - mesaj_icerik - mesaj_gonderilen_uye_id - mesaji_gorecekler

    tablomusun yukarida oldugunu farz edelim

    belirbir uye grubun warsa ona gore işlem yapicaksin ben uye grubun olmadigini ve sadece 200 uye oldugunu farz alarak anlaticam geri kalan kod yapisini zaten sen olusturursun

    oncelikle mesajımızı yaziyoruz

    $sql = mysql_query("insert into mesajtablosu (mesaj_id, mesaj_baslik, mesaj_icerik, mesaj_gonderen_id) VALUES (NULL, 'baslik', 'icerik', '1')");
    $ID = mysql_insert_id();
    
    //dikkatini cekerim mesaji gorecekleri daha işlemedim burda mesajimizi kaydettik. ve eklenilen mesajin id sini aldik.
    sonra 
    $Sorgu=mysql_query('SELECT * FROM uyeler');
    while($Sonuc=mysql_fetch_assoc($Sorgu))
    {
    
      // burda yapicagin işlem basit
    $idler = $idler.",".$Sonuc[id];
    
    }
    son olarak da 
    $update = mysql_query("update mesajtablosu set mesaji_gorecekler='".$idler."' WHERE mesaj_id='".$ID."'");
    
    
    echo "Hadi Kolay Gele :)";
    
    • zyber adlı üyenin fotoğrafı zyber
      php de yeniyim ancak 15 yıllık bir web tasarım geçmişim var daha çok asp üzerine...
      bundan dolayı veritabanı oluşturmada sıkıntım yok sıkıntı php ile işlemleri doğru yapmakta...
      evet bunu tek işlem yani veri eklenirken üyeleri seçeceğimbir menüden checkboxları işaretli üye idlerinide ekleyerek bu şekilde yapacağım.

      görmek istediğim üye idlerini arada virgüllü olarak database e nasıl kaydedildiği idi...
      şimdi şuna da cevap verirseniz sevinirim.

      tamam mesajı ve üyeleri kaydettik
      diyelimki üye girişi yaptım 5 id nolu üye olarak...
      şimdi virgülle ayrılmış üye idlerinin içinde 5 id noyu nasıl aratmalıyım?

      yani mesaji_gorecekler sütunu-alanı içinde (1,2,3,4,5,6,7,8,9) nolu idlere göndermiş olalım...
      5 nolu id i buradan nasıl şekeceğiz?
      asp de split(mesaji_gorecekler, ",") şeklinde verileri virgülle ayırıyoruz array-dizi değişken yapıyoruz sonra mesaji_gorecekler(4) 5 nolu üye oluyor veri sıfırdan başladığı için 4. dizi 5 nolu üye oldu sanırım php de de böyle...

      peki php ile bu kontrolü nasıl yapıyoruz?
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      php ile yapmana gerek yokki

      select * from mesajtablosu WHERE mesaji_gorecekler LIKE '%5%'

      seklinde bir ifade yeterli olur

      %5 yaparsin basinda 5 olanlari sorgular
      5% yaparsan sonunda baslanlari sorgular
      %5% yaparsan basinad ve sonunda 5 olanlari sorgular
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      benim öğrenmek istediğim, arası virgül vb karakter ile ayrılmış veritabanından gelen bir veri içinden belirli bir veriyi almayı anlamaktı
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      o zaman explode kullanirsin hocam oda soyle
      
      $verilerim = "1,2,3,4,5,6,7,8,9,0);
      
      
      $parcala = explode(",", $verilerim);
      echo $parcala[0];
      echo $parcala[1];
      echo $parcala[2];
      

      seklinde yazabilirsin yada for dongusune baglarsan
      $say = count($parcala);
      for($i=0; $i<$say; $i++)
      {
      
        echo $parcala[$i];
      
      }
      
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      burayi yanliş yazmişim ) degil " olacak

      $verilerim = "1,2,3,4,5,6,7,8,9,0";
      
      
      $parcala = explode(",", $verilerim);
      echo $parcala[0];
      echo $parcala[1];
      echo $parcala[2];
      
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      Teşekkürler öğrenmek istediğim buydu demekkki split yerine explode kullanacağız :)
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      aynen öyle kolay gele
      9 yıl önce yazılmış

Cevaplar

  • phpkutuphanesi adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    9 cevap - 3 soru
    Şimdi İstediğin Şeyi Tam Olarak Okuduklarımdan Anlayamadım Ama Sanırım İsteidğin Şey Üyelere Sistemden Otomatik Olarak Yazdığın bir Mesajın Gitmesini İstiyorsun Dimi
    Bunu İstiyorsan Bütün Üyeleri Öncelikle mysqlden Listeleyeceksin Ve Ve oradaki Mail Adreslerini Alacaksın Aldğı Mail Adreslerini While Döngüsünde mail Yollama sisteminde direk göndereceksin Bu kadar Basit Bence Zor bi tarafı Olduğunu Sanmıyorum Yeni Başladığın için Belki Sistemi Tam kavrayamamışsın Eğer Yapamazsan Bi örnek Yapıveririm
    • zyber adlı üyenin fotoğrafı zyber
      Hayır söylediğim işle bahsettiğiniz konunun uzaktan yakından alakası yok.
      keşke okuyup yazsaydınız...

      Kısaca 200 üyeye mesaj göndermek ama bu mesaj aynı içerikolacağı için tek bir defa veritabanına kaydedilip gidecek üyelerin yani 200 kişinin bu mesaja id numaralarını ekleyerek tüm üyelere mesaj gönderme işlemi...

      tersinden söylersek aynı mesajı 200 üye için 200 defa yazmak yerine 1 defa yazıp 200 üyeye göndermek.

      mesajı tekrarlamayacağız da üyelerin id numarası ile mesajın id numarasını ytekrarlayacağız.

      bu sistem için
      1 - Üye tablomuz olacak
      2 - Mesaj tablomuz olacak

      Mesaj tablomuzun sutunları şöyle olacak
      mesaj_id - mesaj_baslik - mesaj_icerik - mesaj_gonderilen_uye_id
      1 - başlık 01 - mesaj 01 içeriği - 1,2,3,45,6,7,8.....200


      ya da şu şekilde yapmak lazım
      1 - Üye tablomuz olacak
      2 - Mesaj tablomuz olacak
      3 - Üye ve Mesajlar tablosu

      Üye ve Mesajlar tablomuzun sutunları şöyle olmalı
      mesaj_id - uye_id
      1 - 1
      1 - 2
      1 - 3
      1 - 4
      1 - 5
      1 - 6
      .....................
      1 - 200










      3 -
      9 yıl önce yazılmış
    • phpkutuphanesi adlı üyenin fotoğrafı phpkutuphanesi
      işlem zaten şöle olacak senin veritabanındaki 200 üye ye $icerik adlı kutucuğa yazdığın tek şey hepsine iletilecek tek tek yazmaktan bahsetmiyorum ki id almana gerek yok sen sadece maillerini alacaksın php kodları senin yerine yapacak benim üyelik panelim var üyelerime mail otomatik panelimden yazdığım yazı hepsine gidiyor mantık böle işliyor
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      ben mail atmaktan bahsetmiyorum mesaj atmaktan bahsediyorum.
      kişi login olunca sayfada gelen mesajı görecek
      bunun için verilerin database içinde olması gerekir
      9 yıl önce yazılmış
    • phpkutuphanesi adlı üyenin fotoğrafı phpkutuphanesi
      O zman Mesajın Şöle Olarak Her zaman Kalmasını İstiyorsan Mesaj Diye Bir Tablo Oluştur Veritabanında Kişi Login Olduğunda Gözükecek Yere Yazdır Veritabanından
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      Lütfen yazdıklarımı iyi okuyun sonra isterseniz cevaplayınız.
      konu array-dizi değerler ile çokluveri ekleme ve bu veriler üzerinde diğer işlemleri yapmakla ilgili...
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      kodu yaziyorum hocam bekle 5dk hazir
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      Teşekkürler
      Merakla bekliyorum.
      ;)
      9 yıl önce yazılmış
    • phpkutuphanesi adlı üyenin fotoğrafı phpkutuphanesi
      Array-dizi Mantığıyla Ne alakası Var Bu İstediğinin Sen Bi Mesaj Tablosu Oluşturman yeterli Sonrası Hangi Üye Hangi Yazdığın Mesajı Görmesini İstiyorsan Sisteminde guruplama Varsa Guruba Göre Mesaj İd si Gönderirsin Yoksa Hepsi Yazdığın Mesajın İd sini Alır Gösterirsin Senin İsteidğin Şey Üylerele Mesajlar Ayrı Bir Tabloda Eşleşecek sonra O eşleşme id si Uye Tablosuna Bir sutuna kaydedilecek Ölme Eşeğim Ölme Bence Sen İşin Zoruna Kaçıyorsun Kolay Gelsin Sana
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      grup id de olur elbette
      ancak bu kişilerin okuyup okumadığı vb. istatistiklerde tutulacağı için her bir uye id i mesaja karşılık yazmak bana mantıklı geldi...

      soruyu sormamdaki amaç zaten doğru yönteme ulaşmak....
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      Gruba mesaj gidecek ancak bu grub içinden bazen tümüne bazen de grub üyelerinin bir kısmına gidecek... bu durumda tek grup id i yazmak grup üyeleri arasında seçimi imkansız yapar sanki...
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      ancak hangi uyenin okuyup okumadigini vs işlemleri tutturcaksan gene ayni mantikla gitmen gerekicek burda okuyanlar diye bi alan daha acarsin surekli oraya işlersin kolay gele
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      aslında ben mesajın hemen yanındaki başka bir sütunda üye idlerini tutmak yerine yukarıda anlattığım 2 mantıkla yani ayrı bir tabloda tutmayı düşünüyorum sonuçta aynı mantık

      1. tablo uyeler
      uye_id - uye_ad .....

      2. tablo mesajlar
      mesaj_id - mesaj_ad .....

      3. tablo mesaj_istatistik
      uye_id - mesaj_id - mesaj_okundumu - mesaj_tarih - _ mesaj_okunma_tarih ........... ve diğer istatistikler....
      9 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      anladim yapmak istedigin ama su istatistik olayi icin diyorum mesaj da zaten tek tek mesaj eklememk icin tek alana topladin okunma olayınıda topla:)
      9 yıl önce yazılmış
    • zyber adlı üyenin fotoğrafı zyber
      Evet dediğinizi anladım.
      Ancak sürekli gelişecek bir alt yapı için en son anlattığım gibi 3. bir tabloya ihtiyaç var her zaman.

      Mesaj tekrarlamak ile kullanıcı ve mesaj id leri tekrarlamak çok farklı konu.

      veritabanı oluşturmada en önemli kurallardan birisi tekrar verinin olmamasıdır.
      mesajın defalarca yazılması en büyük hata ve tekrardır.
      Ancak mesaj_id, uye_id ve diğer ayarlar tekrar değildir.
      tekrardan kastettiğimiz birebir aynı verilerdir...
      9 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      kardeş ticket sistemlerini kontrol et.
      mantık diyorsan. 2 veya daha fazla tablo acıp ılıskılendirmen lazım. ki adam mesaj attıgında yada mesaja cevap yazdıgında facebooktakı gıbı mesajı bı oncekı mesajın altına dusmelı. soru ve cevaplar seklınde gıbı. admın bı gruba mesaj atıacaksa bunun ıcın ozel bı tablo actıracaksın. php kodunlada orda mesaj varmı yokmu dıye sorgulatıracaksın. uye sıl dedıgınde ıse o tablonn ıcınde gızle goster gıbı bır enum fıeldı yada ınt seklınde bır fıeld yapip ona gorede php ile if else ile kontrol etirmen gerekli. biraz karısık gıbı gorunsede olay cok basit.. sadece tablolarını ılıskılendırmen yeterli.
      9 yıl önce yazılmış