v2.5.2
Giriş yap

çoklu kategoriye göre veri listeleme sorunu

rephp7
712 defa görüntülendi ve 2 kişi tarafından değerlendirildi

Merhabalar,

kategoriler tablom:

IDk_adik_id
1Enerji1
2Teknoloji2
3Mekanik3
4Robot4

yazilar tablom:

IDkategori_idyazi_baslik
11,3deneme 1
22,4deneme 2
31, 3, 4deneme 3
42deneme 4

Verileri normalde bu şekilde çekiyorum:
("yazilar where kategori_id=$k_id","","","ORDER BY ID DESC")

Böyle yazınca sadece yazı başlığım (deneme 1) sadece bir kategoride (Enerji) görünüyor. Diğer kategorinin (Mekanik) listesinde görünmüyor.
Explode ile parçalamaya çalıştım:
("yazilar where explode(',',kategori_id)=$k_id","","","ORDER BY ID DESC")
Bu seferde tabloda veri yok olarak dönüyor.

kategori_id yi nasıl parçalayıp $k_id ile eşleştirebilirim.
Birden fazla listede nasıl görünmesini sağlarım.
Örneğin: deneme 1 yazısı hem Eneji hem Mekanik kategorisinin listesine girmeli.

Cevap yaz
Cevaplar (8)
rephp7
1013 gün önce

@fatihozpolat,

o zaman işi daha çok karıştırırım gibi. Bu yaptığımı başaramazsam onuda ikinci seçeneğim olarak kaydettim.
benim talebimde de in_array de kullanmam lazım sanırım ama henüz işin içinden çıkamadım.

polev
1005 gün önce

Çoklu kategori filtreleme yapıyorsan benim çözümüm:

https://prototurk.com/cevap/5099

rephp7
1005 gün önce

Doğru Çözüm:
@makifgokce : #006612 numaralı yorumdadır.
https://prototurk.com/cevap/6612

Teşekkürler

qplot
1012 gün önce

FIND_IN_SET KULLANACAKSIN TAYFUNUN VIDEOSU VAR YAPAMAZSAN 2 3 GUNE YAZARIM

makifgokce
1012 gün önce

https://youtu.be/MQoXH9yNUyo

SELECT `yazilar`.*, GROUP_CONCAT(`kategoriler`.`k_adi`) AS KategoriAdi FROM `yazilar` INNER JOIN `kategoriler` ON FIND_IN_SET(`kategoriler`.`k_id`, `yazilar`.`kategori_id`) GROUP BY `yazilar`.`id`
rephp7
1012 gün önce

pdo ile bu işlemi nasıl yapabilirim, anlatabilir misiniz?
acemiyim bu konuda işin içinden çıkamadım

rephp7
1013 gün önce

006602 deki çözüm sorunum çözümü değildir. yanlışla çözüme dokundum.
Çözümü geri de alamıyorum :(
@tayfunerbilen

fatihozpolat
1013 gün önce

virgül ile ayırmak yerine başka bir tablo oluşturup çoğa çok ilişki kurmak daha mantıklı olacaktır.

Örnek tablo şeması:
https://dbdiagram.io/d/60f555684ed9be1c05d297b7

bu mantıkla örneğim 3 numaralı yazıya ait kategorileri görmek istersen:
select * from yazi_kategori where yazi_id=3
aynı mantıkla 5 numaralı kategorideki yazıları listelemek istersen:
select * from yazi_kategori where kategori_id=5
şeklinde sorgu yazabilirsin.