wmaraci reklam
lidertakipci

Aynı satırda birden çok kategori

6 Mesajlar 683 Okunma
advertseo
wmaraci reklam

Exor Exor WM Aracı Kullanıcı
  • Üyelik 07.11.2013
  • Yaş/Cinsiyet 37 / E
  • Meslek Web&Grafik Tasarım
  • Konum Samsun
  • Ad Soyad B** B**
  • Mesajlar 169
  • Beğeniler 16 / 7
  • Ticaret 0, (%0)
Merhaba
Elimde iki tablo var. A ve B tablosu olsun.
A tablo içeriği;
fid | fadi | fkategori
1 | Deneme 1 | 1,2

B tablo içeriği;
kid | kadi
1 | Kategori 1
2 | Kategori 2

fkategori dediğim tabloda bir yazının birden çok kategori id'sini virgül ile ayırdım. A tablosunun while döngüsüne sokarak listeliyorum fakat kategorileri de aynı şekilde isimleriyle listelemek istiyorum. Bunu nasıl yapabilirim?

Ekstra bilgi olarak; explode konusunu az biliyorum. JOIN ile tablo bağlayabilirim.

Kısacası fkategori de olan 1,2 sayısını oradan alıp 1 ve 2 ye karşılık gelen B tablosundaki kategori adını yazdırmak istiyorum.

Örnek;
ID: 1
Adı: Deneme 1
Kategori: Kategori 1, Kategori 2 gibi listeleme yapacak.
 

 

wmaraci
reklam

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1119
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
SQL tarafında değil de kod (Php, Asp.Net) tarafında split ile ayırıp kategorileri sorgulayabilirsiniz.
 

 

www.ontedi.com
www.cizgi.site

yusuferdal yusuferdal Dahanehaber.com Kullanıcı
  • Üyelik 02.06.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Web tasarım
  • Konum Sivas
  • Ad Soyad Y** E**
  • Mesajlar 44
  • Beğeniler 9 / 14
  • Ticaret 1, (%0)
Exor Hocam onun yerine şöyle bir kategori Mantığı Oluştura bilirsin.
catID , catName, catSlug, catDesc, catAlt
1 Müzikler muzikler desc 0
2 Slow slow desc 1
3 M.ceceli m-ceceli decs 2

Bu şekilde bir kategori mantığı kurar san hem tablo sayısını kurmuş olur hemde sınırsız kategori mantığı oluşturursun diyecektim baktım ki soru farklı :) yazmışım kalsın birine lazım olur diyip
sana şöyle bir yol göstermek istiyorum.

İlişkilendirme için bir tablo daha oluşturursun
İlişkiler tablosu
ilişki id , catid , içerik id şeklinde burada da istediğin gibi yapıp mükemmel sonuçlar elde edebilirsin.
örnek verecek olursak
1 ilişki id si , 5 kategori id , 199 içerik id
2 ilişki id si , 4 kategori id , 199 içerik id

süper olurdu :)
Exor

kişi bu mesajı beğendi.

Exor Exor WM Aracı Kullanıcı
  • Üyelik 07.11.2013
  • Yaş/Cinsiyet 37 / E
  • Meslek Web&Grafik Tasarım
  • Konum Samsun
  • Ad Soyad B** B**
  • Mesajlar 169
  • Beğeniler 16 / 7
  • Ticaret 0, (%0)
yusuferdal öncelikle geç cevap için kusura bakma. Bunu deneyeceğim bir bakayım büyük ihtimal olacaktır. Teşekkür ederim.
 

 

wmaraci
wmaraci

ozgurgezen ozgurgezen WM Aracı Kullanıcı
  • Üyelik 17.03.2016
  • Yaş/Cinsiyet 42 / E
  • Meslek Bilgisayar Muhendisi
  • Konum İstanbul Anadolu
  • Ad Soyad Ö** H**
  • Mesajlar 702
  • Beğeniler 224 / 225
  • Ticaret 16, (%100)
once 2 tabloyu joinleyin bunun uzerinden pivot yapin, istediginizi yapabilirsiniz.
 

 

Kakarotto Kakarotto WM Aracı Kullanıcı
  • Üyelik 30.01.2012
  • Yaş/Cinsiyet 31 / E
  • Meslek Software Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** A**
  • Mesajlar 2434
  • Beğeniler 686 / 1150
  • Ticaret 1, (%100)
İki tabloyu eşleştirebileceğin üçüncü bir tablo kullanmak daha mantıklı olacaktır zannımca.

A Tablosu:
fid | fadi
----|--------------
33 | Deneme 1


B Tablosu:
kid | kadi
----|---------------
24 | Kategori 1
25 | Kategori 2


Eşleştirme Tablosu:
id | fid | kid
---|-----|----------
1 | 33 | 24
2 | 33 | 25


Daha sonra listelemek istediğinde ise diğer tablolarla uğraşmayıp direkt eşleştirme tablosundan çekersiniz verileri.

SELECT kid FROM eşleştirme_tablosu WHERE fid = 33

Sonuç olarak sana 33 nolu FID'in kategori id değerini verir. Dilerseniz de JOINler ile tek sorguda bütün işlemi halledebilirsiniz. Ekstra tekrar, tekrar döngü yapmaya gerek yok.
Exor

kişi bu mesajı beğendi.

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al