$etiketurunler=$VT->VeriGetir("urunler", "WHERE durum=? AND (anahtar LIKE ?)", array(1,'%'.$etiket.'%'), "ORDER BY sirano ASC");SELECT DISTINICT ya da group by gibi bir özellik kullanarak verileri gruplayarak almak istiyorum. Mesela urunler tablosu içindeki kategori satırındaki verilere göre. kategori satırında 1,2,2,3,4,3,4,4,4,5 gibi veriler var. Ben bunları 1,2,3,4,5 şeklinde gruplayarak almak istiyorum nasıl alabilirim acaba. Bunun için yeni bir fonksiyon yazmaya gerek var mı?
PHP PDO ile verileri gruplayarak almak
4
●118
- 30-11-2020, 21:29:30Merhabalar PHP PDO kullanarak verileri ekrana yazdırmak için VeriGetir isimli bir mysql fonksiyon kullanıyorum ve veri almak için şöyle bir yapı kullanıyorum:
- 30-11-2020, 21:40:51Merhabalar.
Yeni bir fonksiyona değil, SQL dizilliminizde değişikliğe ihtiyacınız var. Sizin bu söylediğinizi yerine getiren bir SQL fonksiyonu mevcut. "GROUP BY" ancak özel bir kullanımı var, oda SELECT kısmında gruplanmış alanları veya gruplanmış alana uyumlu bir veri çekebilirsiniz. Mesela
Select name, COUNT(name) where costumer GROUYP BY name
--> bu şekilde bir kullanım uygundur. Bu şekilde üreteceği çıktı şunun gibi olacaktır. Her isimden tabloda kaç adet geçtiği gibi
TulparTech - 17
Enver - 20
Mehmet Akif - 3
gibi.
Ancak şunuda yapamazsınız, name kolonuna göre gruplayıp lastname alanını da çağıramazsınız çünkü name alanında veri tekile düşüyor ama lastname hala çoğul durumda çağırılmaya çalışıyor olacak sorguda.
Umarım faydalı olmuştur.
İYİ ÇALIŞMALAR. - 30-11-2020, 21:53:04Eğer urun_id = 1, kategori_id = 1,2,3,4 gibi tutuluyorsa veritabanında, o yöntem yanlış. Urun_kategori adında bir ortak tablo oluşturup birbiri ile ilişkisini orada kurmalısınız. Mesela diğer türlü ürün listeliyorsunuz diyelim; sütundaki virgülleri explode edip tek tek kontrol etmeniz gerek.gepettoo adlı üyeden alıntı: mesajı görüntüle
Doğru örneğin görselini bıraktım. Bu yapıyı kurduktan sonra istediğiniz GROUP BY olsun

- 30-11-2020, 22:06:44Kıymetli bilgiler için çok teşekkürler. Anladım fakat VeriGetir fonksiyonu ile bunu yapmam mümkün değil sanıyorum zira. VeriGetir fonksiyonumun hazır bir yapısı var. Örnek verdiğim kod grubu içinde bunu nasıl yapabilirim.tulpartech adlı üyeden alıntı: mesajı görüntüle
- 30-11-2020, 22:10:57Kurduğum yapı aynen izah ettiğiniz gibi. Veritabanında ürünler ve kategoriler ayrı ayrı işlenmekte. Bu kısım problemsiz. Aslında sorunum şu: ürünler tablosunun anahtar satırında "%etiket%" kelimesi geçen ürünleri getiriyorum. Ve gelen ürünlerin kategorilerini alarak listeliyorum. Fakat eğer aynı kategoride birden fazla ürün varsa haliyle aynı kategori de birden fazla görünüyor. Bu yüzden gruplayarak almak istiyorum.tematem adlı üyeden alıntı: mesajı görüntüle
