-
Üyelik
22.01.2019
-
Yaş/Cinsiyet
- /
-
Meslek
-
Konum
-
Ad Soyad
** **
-
Mesajlar
257
-
Beğeniler
68 / 43
-
Ticaret
0, (%0)
Simdi yayın akışı diye bir tablo var burada sistemde kayitli üyelerin paylaştığı veriler var, birde takipciler tablosu var buradada kayitli kullanicilar kimleri takip ediyor o verileri topluyorum mesela a diye bir uye olsun bunun uyeler tablosundaki id si 1 yayin akışında bir şey paylaştığında yakin akisi tablosunda o uyenin idsini uye_id diye yayin akisi tablosuna ekliyorum daha sonra bu a kullanicisini uye idsi 2 olan b ve uye idsi 3 olan c takip etsin takipciler tablosuna 2 satır ekleniyor t_eden_id 2,t_edilen_id 1/t_eden_id 3,t_edilen_id 1 şimdi buraya kadar yaptim sadece takip edenlerin yayin akışında takip ettikleri kişinin paylaştığı içerikler gözükmesi gerekiyor acaba bunu nasıl yaparim kod olarak yardim istemiyorumvsadece bir yol,yordam gösterseniz bile yeterli
Edit: Bir kişinin 1den fazla takipcisi olabilir.Tek olsaydi where ile sessiondan idsini gondererek alabiliyordum fakat birden fazla kullanıcı olunca kafam karşıtı
-
Üyelik
05.05.2017
-
Yaş/Cinsiyet
29 / E
-
Meslek
Web-Developer
-
Konum
İstanbul Avrupa
-
Ad Soyad
M** K**
-
Mesajlar
1025
-
Beğeniler
366 / 534
-
Ticaret
5, (%100)
Takip eden kullanıcıların yayın akışına bir koşul ekleyin. Mesela diyelim ki A kullanıcısı B kullanıcısını takip ediyor ve B kullanıcısının paylaştıklarını A kullanıcısının yayın akışında göstermek istiyorsunuz.
ÖNCE A KULLANICISININ TAKİP TABLOSUNDAKİ VERİYİ ÇEKELİM
$Atakipettikleri = query SELECT ''TABLO_ADI''....... | diyerek o tabloyu seçiyoruz.
$Atakipsayisi = numRow $Atakipettikleri | burada tablodaki idleri saydırıyoruz takip ettiği var mı diye.
if $Atakipsayisi > 0 ise {
foreach ($Atakipettikleri as $takipciverisi)
$takipcisonuc = takipciverisi['TABLO_ADI'];
}
ŞİMDİ B KULLANICISININ İD'SİNİ A'nın TABLOSUNDAN ÇEKELİM
$Bkullanıcı = query $takipcisonuc FROM uye_tablosu | Burada önemli olan A'nın takip ettiği kullanıcı id'sini kullanıcıların kayıtlı olduğu user tablosunda arıyoruz. Yani diyoruz ki A'nın takip ettikleri tablosundaki id, user tablosundaki id ile örtüşüyor mu?
$Bsorgulama = numRow $Bkullanıcı
if $Bsorgulama > 0 ise | şimdi B'nin idsini user tablosundan sorgulattık ve eğer sonuç 0'dan büyükse. Bunun yerine direk == vs de kullanabilirsiniz.
$Bpaylastiklari = query SELECT ''B_PAYLASIMLARI'' | Şimdi A'nın takip ettikleriyle B'nin id'si örtüştüğü için artık B'nin paylaştıklarını seçip A'nın yayın akışında gösterebiliriz.
$Bpaylasimsorgulama = numRow $Bpaylastiklari | burada hata almamak için B'nin paylaşımı olup olmadığını kontrol edeceğiz. Çünkü hiç paylaşım yapmamış olabilir.
SON AŞAMA
if $Bpaylasimsorgulama > 0 ise {
foreach($Bpaylastiklari as $Bninpaylasimlari) {
$yazdirilacak = $Bninpaylasimlari['B_PAYLASIMLARI']
}
echo $yazdirilacak;
}
else {
echo 'Paylaşım Bulunamadı vs.'
}
Ve son aşamada eğer paylaşımı varsa B'nin bu paylaşımı çektik ve A'nın duvarında echo ile yazdırdık. Burada işlem aşamamız şöyleydi:
Önce A Kullanıcısının takip ettiği id'yi çekip bunu $takipcisonuc olarak tanımladık.
Ardından $takipcisonuc'un üyelerin yer aldığı tabloda olup olmadığını kontrol ettik.
Eğer takip edilen ve üye eşleşiyorsa takip edilen kullanıcının paylaşım tablosunu çektik.
Eğer paylaşım tablosu boş değilse yani paylaşımı varsa bunu takip edenin yayın akışına yazdırdık.
EDİT: Birden fazla üye için yine A'nın takip ettiği üye idlerini ARRAY ile yazdırıp aynı üye İD'lerini üyeler tablosunda sorgulatıp yine aynı mantıkla o üyelerin paylaşımlarını A'nın yayın akışına çekebilirsiniz.
EDİT 2: PHP'de yeniyim hatam varsa affola
-
Üyelik
30.03.2019
-
Yaş/Cinsiyet
30 / E
-
Meslek
Yazılımcı
-
Konum
Muğla
-
Ad Soyad
A** Y**
-
Mesajlar
93
-
Beğeniler
12 / 47
-
Ticaret
3, (%100)
Simdi yayın akışı diye bir tablo var burada sistemde kayitli üyelerin paylaştığı veriler var, birde takipciler tablosu var buradada kayitli kullanicilar kimleri takip ediyor o verileri topluyorum mesela a diye bir uye olsun bunun uyeler tablosundaki id si 1 yayin akışında bir şey paylaştığında yakin akisi tablosunda o uyenin idsini uye_id diye yayin akisi tablosuna ekliyorum daha sonra bu a kullanicisini uye idsi 2 olan b ve uye idsi 3 olan c takip etsin takipciler tablosuna 2 satır ekleniyor t_eden_id 2,t_edilen_id 1/t_eden_id 3,t_edilen_id 1 şimdi buraya kadar yaptim sadece takip edenlerin yayin akışında takip ettikleri kişinin paylaştığı içerikler gözükmesi gerekiyor acaba bunu nasıl yaparim kod olarak yardim istemiyorumvsadece bir yol,yordam gösterseniz bile yeterli
Edit: Bir kişinin 1den fazla takipcisi olabilir.Tek olsaydi where ile sessiondan idsini gondererek alabiliyordum fakat birden fazla kullanıcı olunca kafam karşıtı
Şöyle düşünelim;
A,B,C,D üyelerimiz var.
A user_id = 1
B user_id = 2
C user_id = 3
D user_id = 4
////////////////////////////////////////
Paylaşım Tablosu : PAYLASIM
--------------------------------
id-user_id-p_text--p_context
-------------------------------
1----1-----haha----abc.jpg
2----1-----hehe----xa.png
3----4-----aaa-----apa.m3p
4----3-----hehe----xxx.mp4
////////////////////////////////////////
Takipçi Tablosu : TAKIPCI
id user_id follow_id
-----------------------
1------1--------2
1------1--------3
1------4--------2
1------4--------1
1------4--------3
////////////////////////////////////////
Burdan sonra yapacağın kısım basit.
Yayın akışına Paylaşım Tablosu'ndan verileri getirirsin.
Bu verilerin gösterim sorgusunuda sessiondan user idyi çekersin, çektiğin user_id yi takipçi tablosunda sorgulayıp follow_id leri alırsın. follow_idyide paylaşımı filtrelersin.
Örn:
SELECT * FROM PAYLASIM WHERE user_id = (
SELECT follow_id FROM TAKIPCI WHERE user_id = '$SESSION['user_id']'
)
Edit : tablo yapısının optimizasyonu nasıl olur bilemiyorum senin örneklendirmene göre yaptım
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
SELECT yayin_akisi.adi, yayin_akisi.url, yayin_akisi.image_url
FROM yayin_akisi
INNER JOIN takipciler
ON yayin_akisi.olusturan_uye == takipciler.t_edilen_id AND takipciler.t_eden_id == $takip_eden_kullanicinin_idsi;