Doğru Cevap
-
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
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?12 yıl önce yazılmış -
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 sorgular12 yıl önce yazılmış -
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ı12 yıl önce yazılmış -
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]; }
12 yıl önce yazılmış -
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];
12 yıl önce yazılmış -
zyber
Teşekkürler öğrenmek istediğim buydu demekkki split yerine explode kullanacağız :)12 yıl önce yazılmış -
kralmermi
aynen öyle kolay gele12 yıl önce yazılmış
-
Cevaplar
-
Ş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
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 -12 yıl önce yazılmış -
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şliyor12 yıl önce yazılmış -
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ı gerekir12 yıl önce yazılmış -
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ından12 yıl önce yazılmış -
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...12 yıl önce yazılmış -
kralmermi
kodu yaziyorum hocam bekle 5dk hazir12 yıl önce yazılmış -
zyber
Teşekkürler
Merakla bekliyorum.
;)12 yıl önce yazılmış -
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 Sana12 yıl önce yazılmış -
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....12 yıl önce yazılmış -
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...12 yıl önce yazılmış -
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 gele12 yıl önce yazılmış -
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....12 yıl önce yazılmış -
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:)12 yıl önce yazılmış -
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...12 yıl önce yazılmış -
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.12 yıl önce yazılmış
-