İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Veritabanı Üzerindeki Bilgileri Değiştirmek ve Güncellemek Hakkında !

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Bir tablo içindeki sütun üzerinde bir değiştirme işlemi yapmak istiyorum.

Sütun içindeki bilgiler . nokta işareti ile ayrılmıştır :

ID sutun1
1 b.
2 b.b1.b6.e4.t7.
3 b.b1.b6.e4.
4 b.b1.b6.
5 a.h.b1.c.b.z.
6 a.d.s.b1.w.b.

1) Başlangıç olarak ID nosu 1,2,3,4 olan satırlardaki sadece b1 verisini güncelleyip değiştirmek istiyorum.
Fakat ID nosu 5,6 olan satırların içindeki b1 verisinin bundan etkilenmemesi gerekiyor.

2) Diğer bir şekil ise ID nosu 1,2,3,4 olan satırlarının başında bulunan sadece b verisini güncelleyip
değiştirmek istiyorum.Fakat ID nosu 5,6 olan satırlardaki b verisinin bundan etkilenmemesi gerekiyor.

Bu tür bir değişimi nasıl bir mantıkla ve parametrelerle çözebilirim ?

- REPLACE komutunu kullandığımda benzer tüm verilerin hepsini değiştirmektedir.
- Sütun içindeki verileri parçalayıp WHERE ile ayıkladığımda ise güncelleme işlemini tam olarak yapamıyorum.
Örnek olarak b.b1.b6.e4.t7 yi parçaladım b1 verisi güncellenecek, b1 den önceki bölümü alıyorum ve sonuç
b.b11 olduğunu düşünürsek değişen bölümden sonraki verileri buna nasıl ekleyebilirim.
 

carbondioxide

0
İyinet Üyesi
Katılım
26 Ekim 2012
Mesajlar
0
Reaction score
0
veritabanında da veriler noktalarla ayrıldıysa explodela sütunu noktalardan ayırarak diziye alıp dizi içinde istediğin değişkeni değiştirebilir sonra da hepsini implodela yine aralarına nokta koyarak birleştirebilirsin
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
'b.b1.b6.e4.t7 ' - b1'i replace etmek niye benzer tüm verileri değiştiriyor, sadece b1 var orada?
eğer b1 den bağımsız, noktadan sonraki ikinci elemanı değiştirmek istiyorsan
substring_index() fonksiyonuna bakabilirsin
 

metadige

0
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
4
eğer sorununu yanlış anlamadıysam sql sorgunu doğru yapamıyorsun. Çünkü parçalamaya vs. gerek yok.

PHP:
update tablo set sutun=replace(sutun,'b1.','yeni.') where id in (1,2,3,4);

gibi bir sorguyla rahatça istediğini yapabilirsin.
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Cevaplar için teşekkürler. Fakat bu konu benim için biraz karışıktı. 10 tane alt alta aynı isimli kategoriler açın ( b1.b1.b1 ... gibi ) ve bu kategorilere ait kayıtlar oluşturun. Daha sonrada kategori ismini değiştirdiginizde diğer hiçbir bölümü etkilemeden ilgili kayıttaki tüm kategori bilgileride değişmesi gerekiyor. replace gibi bir parametre ile bu sorunu çözemedim maalesef.

Zaten en basit çözümü gözden kaçırmışım. str_replace ile problemi çözdüm.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Ordaki b1.b2.b3 ler kategori ağacıysa, baya yanlış bir yol tutuyorsun yalnız =)
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Angelo Alt yapısıda senin gösterdiğin şekilde tek sayfadan çalıştırma mantığı ve parçalama tekniği :) Neden yanlış olduğunu söylermisin aydınlanalım :)
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
İlerde bir gün b1 ve b3 kategorilerindeki ürünleri cekmek istersen, cat LIKE '%b1%' OR cat LIKE '%b3%' gibi birşey yapman gerekiyor.
Kategoriler ağaç şeklinde kurulmalı, sonra her ürünün bağımlı olduğu kategoriler, prod_kategori tarzı, ürün id'sini kategori id'sine bağlayan satırlardan oluşmalı.
Veritabanında normalizasyon olarak araştırabilirsin konuyu.
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Söylemiş olduğun şeyleri tamamıyle yaptım sanıyorum. Fakat biraz değişik bir türde yapmış olabilirim o ayrı bir mesele :)
Kategorilendirme hiyerarşik bir düzende parent id 'ler ile birbirine bağlı ayrıca söylemiş olduğun gibi ürünlerin ilgili kategori ile bağlantı kurması ve kontrolü için ayrı bir sütün var. O bölümü biraz değişik yaptım.

Daha önce söylemiş olduğun tek sayfa ile yönetim şekli örneğinden yola çıkarak 5 milyon kayıtlı bir web site yapmıştım. Bu sitede yaşadığım problemlerden yola çıkarak bu şekilde bir alt yapı denemek istiyorum. Daha önceki sitenin yönetim sayfasında 100 satır kod varsa şimdikinde aynı işi yapan 20 satır kod var ve daha hızlı olduğunu düşünüyorum. Alt yapı tamamen bittiğinde random 5 veya 10 milyon kayıt ekleyip özellikle sayfalandırma, arama gibi sorguların nasıl çalıştığını kontrol edicem.

Angelo verdiğin bilgiler için çok teşekkürler. Senin nirvana derecesine ulaşmam için daha çok çalışmam lazım :)
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst