Merhabalar, cümleten iyi geceler.
Bir projem için içerikleri beğeni sayılarına göre çekmek istiyorum. SQL tarafında çuvallıyorum.
İşlem yapacağım 2 tablo şu şekildedir.
tb_likes = like_id, post_id, user_id
tb_post = post_id, post, user_id, status
Aksiyon
beğen butonuna basılınca oturumdaki kullanıcının user_id ve ilgili post_id "tb_likes" tablosuna işleniyor.
tb_post tablosundaki verileri tb_likes tablosundaki beğeni sayılarına göre en çok beğeni alandan en az beğeni alana göre sıralamak istiyorum. Nasıl yapabilirim, yardımcı olabilir misiniz?
Şimdiden teşekkür ederim.
PHP beğeni sayısına göre içerik çekme
7
●113
- 18-02-2021, 03:13:15Çok teşekkür hocam eve geçtiğim zaman deneyeceğim, sorgudaki toplam nereden geliyor, sorabilir miyim?Zalmoxis adlı üyeden alıntı: mesajı görüntüle
- 18-02-2021, 03:15:46Hocam toplam değeri post_id lerinin kaç kere geçtiğini sayarak geliyor. Ancak bu şekilde çalışır mı bilmiyorum. Sizin yerinizde olsam beğeni sayısını da tb_posts tablosunda tutardım. tb_likes tablosunu sadece aynı üye 2 kere oy veremesin diye kullanırdım. Yine de siz bilirsiniz tabii ki.AKSOYOGLU adlı üyeden alıntı: mesajı görüntüle
- 18-02-2021, 03:29:05Anlıyorum, tekrardan teşekkür ederim.Zalmoxis adlı üyeden alıntı: mesajı görüntüle
- 18-02-2021, 03:32:39count ve join yardımıyla yapabilirsin. Fakat tavsiye olarak beğeni sayısını tb_post tablonda kayıt et öyle işlem yap
- 18-02-2021, 04:45:51SELECT tb_post.*, COUNT(tb_likes.like_id) AS like_count
FROM tb_post LEFT JOIN tb_likes ON tb_post.post_id = tb_likes.post_id
GROUP BY tb_post.post_id
ORDER BY like_count DESC
Bu şekilde hallolması lazım.
Edit: tb_likes tablosundaki post_id sütununa index verirseniz işlemler çok daha hızlı olur sürekli bir ilişki kurulacağı için. - 18-02-2021, 19:36:18Hocam çok büyüksün, zahmetin için teşekkür ederim.onurkun adlı üyeden alıntı: mesajı görüntüle