Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 09/10/2007, 00:25   #1 (permalink)
Üye
 
Üyelik Tarihi: 10/2007
Mesaj: 4
Varsayılan Mysql ve Toplu Replace

Merhaba,
Kendi hazırladığım bir download scriptim var php+mysql kullanarak hazırladığım.
Dosyalar tablosunda 7500 tane link var fakat bu linkleri toplu olarak değiştirmem gerekiyor Ama nasıl olacağını bilmiyorum?

Örneğin;elimde 7500 tane eski 7500 tane yeni link var bunları nasıl bir sorguyla değiştirebilir veya değiştirebilir miyim ?

yardımcı olursanız çok sevinirim kaç gündür bu dertten muzdaripim denemediğim text editör kalmadı tek satırdan fazla çeviremiyorlar tek tek çevirmem de oldukça zor
netd hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 01:01   #2 (permalink)
Cevizci
 
arthon Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2006
Yer: İstanbul
Mesaj: 339
Varsayılan

google a "mysql replace" yazdım 2. sonuç:
http://www.nikmakris.com/2005/mar/29.html
arthon hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 01:21   #3 (permalink)
Üye
 
Üyelik Tarihi: 10/2007
Mesaj: 4
Varsayılan

teşekkür ederim bunu zaten biliyorum fakat bunla tek replace yapabiliyorum
benim yapmak istediğim toplu değişiklik
yapmak istediğim şey aşağıdaki gibi esli ve yeni linkleri aratıp değiştirtmek istiyorum
netd hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 01:52   #4 (permalink)
Cevizci
 
arthon Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2006
Yer: İstanbul
Mesaj: 339
Varsayılan

update [table_name] set [field_name] = replace([field_name],'http://www.ceviz.net/1','http://www.ceviz.net/1axd');
update [table_name] set [field_name] = replace([field_name],'http://www.ceviz.net/2','http://www.ceviz.net/1dax');
update [table_name] set [field_name] = replace([field_name],'http://www.ceviz.net/3','http://www.ceviz.net/1fda');

böyle yapabilirsin yoksa ben mi yanlış anlıyorum?
senin tek fieldının tek satırında yazan ne ve onu ne yapmak istiyorsun?
arthon hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 03:34   #5 (permalink)
Üye
 
Üyelik Tarihi: 10/2007
Mesaj: 4
Varsayılan

sanırım ben anlatamadım.
sizin verdiğiniz yöntemi biliyorum aşağıdaki program ile aynı görevi görüyor o kod.

tek tek uğraşmak gerekiyor fakat benim istediğim
olay şu yukardaki verdiğim frontpage ekran görüntüsü gibi geniş bir arama alanı ve geniş bir değiştirme alanı olması.replace dediğimde eski linklerin hepsini yenileriyle değiştirmesi.
yani her satırda otomatik bir işlem yapacak
netd hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 03:43   #6 (permalink)
Eski Cevizci
 
myavuzselim Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2004
Mesaj: 792
Varsayılan

Neyin ne ile degistirilecegini nasil belirliyorsun? 7500 tane link icin bunu klavyeyle girmeyeceksin kutulara sanirim

Bu yapacagin bir seferlik bir isse bence en kolayi sql kodu ureten bir kod yazman. Bunu php ile de yapabilirsin.
myavuzselim hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 04:28   #7 (permalink)
Üye
 
Üyelik Tarihi: 10/2007
Mesaj: 4
Varsayılan

Bakın şöyle anlatayım.
Bahsettiğim veritabanım eski doğal olarak içinde eski linkler var.7500 tane linki excel ile kolaylıkla alabiliyorum tek hamlede id sırasına göre.
"id 1 - 1.zip
id 2 - 2.zip"
Bir de elimde 7500 tane yeni link var ben tek tek yönetici panelinden veya sql sorgusu yaparak bu linkleri değiştirmek yerine komple linkleri değiştirmek istiyorum.
1.zip > yeni1.zip
2.zip > yeni2.zip
Yani şu an elimde eski.txt ve yeni.txt var yeniyi eskinin üzerine yazdırmak istiyorum sadece ve sadece linkleri gerisi herşeyiyle aynı kalacak
mysql find and replace güzel bir uygulama fakat ona da 7500 kere işlem yapmak gerekiyor.Şöyle olsaydı her satırda bir link ve bir hedef tam istediğim olacaktı.Kendi otomatik satırları değiştirecekti
Şu an demosu tek satırlık full versiyonda belki öyledir diye düşünüp almak istedim fkat her sitede aynı ekran görüntüsü var
bu sadece bir seferlik olacak ama nasıl olacak
netd hatta değil   Alıntı Yaparak Yanıtla
Eski 09/10/2007, 09:07   #8 (permalink)
Cevizci
 
arthon Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2006
Yer: İstanbul
Mesaj: 339
Varsayılan

yeni linkleri geçici bir tablo oluşturup oraya import et text dosyasından. Burada önemli olan eski linklerin sırası ile yeni linklerin sıralarının aynı olması. Tabii primary id'lerinden çakışması gerek.
eski tablon mesela:
id name link
1 ceviz1 ceviz.net/1
2 ceviz2 ceviz.net/2
3 ceviz3 ceviz.net/3

şeklindeyse yeni tablon:

id yenilink
1 ceviz.net/1asf
2 ceviz.net/2ddf
3 ceviz.net/3gff

şeklindeyse tek bir sql cümlesiyle işi bitirebilirsin.

UPDATE eskitablo,yenitablo SET eskitablo.link = yenitablo.yenilink WHERE eskitablo.id = yenitablo.id

burada önemli olan senin eski verilerinle yeni verilerin tamamen çakışır haldemi. Eğer sırası çakışıyor ama primary id'ler çakışmıyorsa primary idlerin sırasına göre yeni 1 den başlayacak sıra numaraları verdiren bir script yazman gerekebilir.
arthon hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
mysql da toplu degiştirme Nous PHP 5 26/05/2007 17:54
replace trancemaster Javascript / DHTML / Ajax 3 22/03/2007 02:41
Mysql Replace sorusu? pirilti Veritabanları & SQL 1 28/06/2006 13:12
replace lombaks ASP 3 07/12/2005 16:23
replace ??? DotNetKid ASP 2 05/04/2004 01:04


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 07:06.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net