v2.5.2
Giriş yap

çoklu kategoriye göre veri listeleme sorunu

rephp7
924 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
1404 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
1396 gün önce

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

https://prototurk.com/cevap/5099

rephp7
1396 gün önce

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

Teşekkürler

qplot
1403 gün önce

FIND_IN_SET KULLANACAKSIN TAYFUNUN VIDEOSU VAR YAPAMAZSAN 2 3 GUNE YAZARIM

makifgokce
1403 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
1404 gün önce

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

rephp7
1404 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
1404 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.