lostyazilim
tr.link

Veritabanındaki Verileri Toplu Çarpma ve Toplama İşlemi

17 Mesajlar 4.175 Okunma
lstbozum
tr.link

HerAlanda HerAlanda ZeHiRLy Kullanıcı
  • Üyelik 23.11.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Web Öğreniyor...
  • Konum Gaziantep
  • Ad Soyad M** K**
  • Mesajlar 67
  • Beğeniler 2 / 16
  • Ticaret 0, (%0)
Merhaba arkadaşlar, yine işin içinden çıkamadığım bir durum var umarım yardımcı olabilirsiniz.

Şimdi bir sipariş sistemimiz var burada Ör. 4 kalem sipariş girilmiş her birinin adet sayısı ve birim fiyatı bununmakta. İş burada başlıyor.

Şimdi birim fiyatları ile adet sayısını çarpıp daha sonra genel toplam oluşturmam lazım. Ancak sipariş sayfasındaki alanlar array dizini halinde. Yani + butonuna bastıkça yeni sipariş alanı açıyor min. 1 sipariş max sonsuza kadar gidiyor. Sabit alanlar olmadığı için işlem yapmada sorun yaşıyorum.
Veri tabanına tek tek verileri ekliyor ve her sipariş grubuna SIP985214562 gibi bir id atıyor bu id üzerinden o sipariş grubunu seçebiliyorum ama array dizini olduğu için nasıl işlem yapacağımı çözemedim.

Demek istediğim Borç, Alacak, Kalan Bakiye sistemi gibi birşey yapmak istiyorum. Veri tabanındaki bu verilerle nasıl işlem yapabilirim? Yardımcı olursanız sevinirim.
 

 

wmaraci
reklam

HerAlanda HerAlanda ZeHiRLy Kullanıcı
  • Üyelik 23.11.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Web Öğreniyor...
  • Konum Gaziantep
  • Ad Soyad M** K**
  • Mesajlar 67
  • Beğeniler 2 / 16
  • Ticaret 0, (%0)
Hiç kimse bilmiyor mu acaba ?
 

 

rapcrown rapcrown WM Aracı Kullanıcı
  • Üyelik 04.12.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Php Developer
  • Konum Trabzon
  • Ad Soyad E** B**
  • Mesajlar 117
  • Beğeniler 5 / 32
  • Ticaret 3, (%100)
PHP mysql de SUM diye bir kullanım var kardeşim sana yol göstermesi açısından bununla bir bakabilirsin arrayları nasıl tuttuğunu bilmediğim için birşey söyleyemiyorum.
 

 

HerAlanda HerAlanda ZeHiRLy Kullanıcı
  • Üyelik 23.11.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Web Öğreniyor...
  • Konum Gaziantep
  • Ad Soyad M** K**
  • Mesajlar 67
  • Beğeniler 2 / 16
  • Ticaret 0, (%0)
array dizinlerini (SIP985214562) Id ile çekiyorum. Her sipariş grubuna bu tür bir id atıyor ve siparişler veri tabanına tek tek ekleniyor. Virgülle ayrılmış şekilde kaydedilmiyor.
vt resim


siparis detay resim


umarım yardımcı olabilirsin.
 

 

wmaraci
wmaraci

HerAlanda HerAlanda ZeHiRLy Kullanıcı
  • Üyelik 23.11.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Web Öğreniyor...
  • Konum Gaziantep
  • Ad Soyad M** K**
  • Mesajlar 67
  • Beğeniler 2 / 16
  • Ticaret 0, (%0)
Birde Yapılan ödemeleri veritabına ayrı bir alan açıp odemeler diye mi kaydetmem lazım yoksa siparişler içerisine bir alan açıp içerisine mi kaydetmem lazım hangisi daha mantıklı kullanışlı olur bilmiyorum.
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
Merhaba, paylaşmış olduğun görsellerden hiçbir şey anlamadım kusura bakma.

Genel mantık, Sipariş tablosunda bulunan SiparişId ile insert edilmiş olan tüm kayıtları BİRİM_FİYAT*ADET sonucunun toplamını almaktan geçer.

Sen sipariş tablosunun tasarım kodunu paylaşırsan daha sağlıklı olur. Tablonun içerisindeki sütunları ve veri tiplerini görelim.
 

 

SertacSolmaz SertacSolmaz IT Manager Kullanıcı
  • Üyelik 27.08.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek IT Manager
  • Konum Kayseri
  • Ad Soyad S** S**
  • Mesajlar 84
  • Beğeniler 31 / 18
  • Ticaret 0, (%0)
HerAlanda, kardeşim projendeki sipariş modülünün tamamını baştan yapmanı tavsiye ederim
Neden ?
Bu işte arayüz tasarımından önce database (Veritabanı) hazırlaman gerekli..
1) tblSiparis (ID,SiparisNo,MusteriId,OlusturanId,OlusturmaTarihi,TalepTarihi,Durum,DurumTarihi)
2) tblSiparisDetay (ID,SiparisId,MalzemeId,Miktar,Tutar)

Bu en basit sipariş modülü için veritabanı alanları.. daha çok alan eklenerek özellik kazandırılılabilir.
Bunlar dışında alanların varsa ekleyebilirsin tablolarına..

Sipariş bütün satırları ile oluştuktan sonra önce tblSiparis tablosuna kayıt girersin, sonra tblSiparisDetay tablosuna sipariş içindeki ürün yada malzemelere ait miktar tutar verilerini girersin..

Ödemeler içinde tblOdemeler adinda bir tablo oluşturursun Örnek :

tblOdemeler (ID,MusteriId,OdemeTuru,Tutar,Durum,Tarih)

Gibi...

Bu tür farklı olayları farklı tablolarda tutmanı tavsiye ederim..
tblKullanici
tblMalzeme
tblMusteri
tblSiparis
tblSiparisDetay
tblOdemeler
vs vs..


Bunların sana fikir vereceğini düşünüyorum..
Kolay gelsin..
 

 

Zoru hemen başarırız. İmkansız biraz zaman alır.

HerAlanda HerAlanda ZeHiRLy Kullanıcı
  • Üyelik 23.11.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Web Öğreniyor...
  • Konum Gaziantep
  • Ad Soyad M** K**
  • Mesajlar 67
  • Beğeniler 2 / 16
  • Ticaret 0, (%0)
veritabanını eksik paylaşmıştım tam alan burada


umarım bu resim üzerinden biraz daha eksiklerimizi görebiliriz.
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 38 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** B**
  • Mesajlar 187
  • Beğeniler 8 / 49
  • Ticaret 2, (%100)
Keyif kaçırmak gibi olmasın, ama bu DB tasarımıyla bu iş olmaz. Yol yakınken önce DB tasarımını düzeltmelisin. Benim tavsiyem opensource olan ve kabul görmüş eCommerce sistemlerinin DB tarafını inceleyerek kendine göre bir mantık oluşturabilirsin.

Paylaşmış olduğun tablo tasarımına bakacak olursak, birim_fiyati sütunun mevcut fakat adet bilgisini tuttuğun sütun yok, dolayısıyla ara toplam alabileceğin bir adet sütunun olmalı.



Benim sana tavsiyem open source bir sistemin DB tarafını incelemenden yana.

Genel mantık olarak aşağıdaki tabloların olmalı,

Kullanıcı Tablo
Ürün Tablo
Fiyat Tablo
İndirim Tablo
Stok Tablo
Sipariş Tablo
Sipariş Detay Tablo
İptal-Iade Tablo
Tahsilat Tablo
 

 

SertacSolmaz SertacSolmaz IT Manager Kullanıcı
  • Üyelik 27.08.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek IT Manager
  • Konum Kayseri
  • Ad Soyad S** S**
  • Mesajlar 84
  • Beğeniler 31 / 18
  • Ticaret 0, (%0)
HerAlanda kardeşim nasıl bir iş akış şeması var projende tam anlayamıyorum ama veritabanı
konusunda kendini biraz daha geliştirmen gerekli olduğunu düşünüyorum..
Özellikle "İlişkili tablolar" konusu..

Örneğin :
Select S.SiparisNo,S.Tarih,M.Kodu,M.Adi,U.Kodu,U.Adi,SD.Miktar,SD.Tutar
from tblSiparis S
left join tblMusteri M on M.ID = S.MusteriId
left join tblKullanici K on K.ID = S.KullaniciId
left join tblSiparisDetay SD on SD.SiparisId = S.ID
where S.SiparisNo = 'SIP/2017/05/00001'


Bu sorguda tblSiparis,tblMusteri,tblKullanici,tblSiparisDetay 4 tablodan veri çektik (Query örneğini fikir oluşturması için yazdım..)

Başarılar dilerim..
 

 

Zoru hemen başarırız. İmkansız biraz zaman alır.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al