Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » ASP » adet<%=rs("id")%> peki if adet="" then nasıl olacak


Yanıt
 
LinkBack Seçenekler
Old 27.05.2005   #1 (permalink)
 
Üyelik Tarihi: 02.01.2005
Yer: PRS
Yaş: 27
Mesaj: 48
adet<%=rs("id")%> peki if adet="" then nasıl olacak


2 yıl aradan sonra tekrar ASP kodlamaya başlamakla beraber, bırakıp unutarak nasıl bir delilik yaptığımın ancak yeni farkına vardım. Bırakmakla beraberinde gelen "unutmak" kavramı yüzünden dolayısıyla bir yerlerde takılmaya başlıyorum.

form ismi;

<input name="adet<%=rs("id")%>" type="text"
value="<%=rs("adet")%>" size="5">

olan bir ifadeyi

if adet="" then

burada nasıl belirleyeceğim ?

Yapmak istediğim alt alta sıralanan sipariş adetlerini değiştirmek istiyorum. Doğrudan "adet" olarak belirlediğimde sadece bir siparişin adedi değişiyor.. 45 dk. dır uğraşıyorum. Yardımcı olur musunuz ?
KenanBalamir şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 27.05.2005   #2 (permalink)
 
Üyelik Tarihi: 16.02.2005
Yer: İstanbul
Yaş: 23
Mesaj: 25
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

yapmak istediğin şeyi biraz daha detaylı ve net anlatabilirmisin?
oj.c şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 27.05.2005   #3 (permalink)
 
Üyelik Tarihi: 02.01.2005
Yer: PRS
Yaş: 27
Mesaj: 48
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

Ekteki resimde sepete eklenen siparişler görünüyor. Bu kısımda bir de Adet bölümü var. Ziyaretçi ürün adedinde değişiklik yapmak istiyor mesela. Burada adetin bulunduğu kutucuğun adına "adet" verip bu şekilde işleme devam edildiğinde [Adedi değiştir düğmesine tıklandığında] ;

Kod:
default.ASP, line 1529

Tarayıcı Tipi:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) 

Sayfa:
POST 41 bytes to default.ASP

POST Data:
degistir=67&tur=adet&adet=6&adet=3&adet=1
Satır 1529

Kod:
rs("adet")=adet
rs.update
[degistir=67&tur=adet&adet=6&adet=3&adet=1] Asıl önemli olan kısım burası. Görüldüğü gibi formdaki kutunun adını sadece "adet" yazarsam diğerlerinin adı da adet olduğundan tümünü değiştirmeye kalkıyor. Bu yüzden kutunun adını "adet<%=rs("id")%>" yapıyorum ki sıralanan siparişler "adetID" olarak görünsün.

Buraya kadar herşey normal. Ama bu kutuyu yani "adetID" kutusunu boş bırakınca hata vermesini istiyorum. Bunun için;

if ?????????="" then

ifadesini kullanmam gerekiyor. Peki burada "adet<%=rs("id")%>" adını verdiğim kutunun boş bırakılması durumunda hata vermesini istediğimden ????????? kısmına ne/nasıl yazmalıyım ?


Umarım yeterince açık yazmışımdır/anlatabilmişimdir..

Saygılarımla
KenanBalamir şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 27.05.2005   #4 (permalink)
 
Üyelik Tarihi: 16.02.2005
Yer: İstanbul
Yaş: 23
Mesaj: 25
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

sepetin içeriği olarak gönderilen bilginin kontrolü açısından gelen tüm verileri işlemden geçirmek problem çıkarabilir. şunu demek istiyorum: zaten sepetin içeriği veritabanında kayıtlı, önce veritabanından bu kayıtları okuyun, sonra mesela
////
adet=request.form("adet" & rs("urunid"));
if not adet="" then
rs("adet")=adet
else
response.write ("Hata: Adet alanını boş bırakmayınız!")
end if
//////
gibi bir mantıkla alan kontrolü yapın ve update edin vs...

Eğer post data içerisindeki tüm veriyi mesela
/////
foreach request.form as adet
if (left(adet,4))="adet" then 'burada elimizdeki verinin adının adet ile başladığını tespit ediyoruz
....işlemler 'tekrar ismi parçala, id değerini oku, dolu mu boş mu kontrol et vs..
else
'bu zaten bir adet bilgisi değil
end if
next
/////
gibi bir işlemle kontrol ederseniz hem kasmış olursunuz, hem istemediğiniz verileri de işlemden geçirmiş olursunuz.
kolay gelsin.

Mesaj oj.c tarafından 27.05.2005 (22:04) yeniden düzenlendi.
oj.c şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.05.2005   #5 (permalink)
nothingrows
 
Mesaj: n/a
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

adım adım anlatayım:
1. sepetteki ürünleri listelerken do until oKayitdizisi.eof vb. kullanma, for sSira = 1 to oKayitdizisi.recordcount olayını kullan (bilmiyorsan özelden mesaj atabilirsin anlatırım, konuyu dağıtmak istemem),
2. inputlardaki name ve id leri ise name="Adet<%= sSira %>" olarak değiştir. böylece sepetteki ürünlerini 1 den ürün sayısına kadar numaralandırmış olacaksın,
3. sepeti güncelleme butonuna tıklanıp form gönderildikten sonra formu işleyen kısımda ise yine aynı mantıktan hareketle for sSiraGuncelle = 1 to oKayitdizisi.recordcount ile tüm sepeti sıralayacaksın, fakat for next arasına bu sefer güncelleme kriterlerini gireceğiz. şöyleki;
Alıntı:
for sSiraGuncelle = 1 to oKayitdizisi.recordcount
if oKayitdizisi.eof then exit for
oKayitdizisi.update
oKayitdizisi("sepet_adet") = request.form("Adet"&sSiraGuncelle )
oKayitdizisi.update
oKayitdizisi.movenext
next

olay budur yani... ürünleri silmek içinde ortadaki kodu bir SQL komutu ile değiştirirsin olur biter....
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.05.2005   #6 (permalink)
 
Üyelik Tarihi: 02.01.2005
Yer: PRS
Yaş: 27
Mesaj: 48
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

Sevgili "nothingrows" un önerdiği kod, desteği ve bilimum çabalarıyla (: problem çözüldü.

Hepinize teşekkür ederim.
KenanBalamir şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 28.05.2005   #7 (permalink)
 
Üyelik Tarihi: 29.07.2004
Yer: İstanbul
Yaş: 23
Mesaj: 156
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

Sorunun çözüldüğüne sevindim, ancak ek bir not olarak, her ne kadar pratikte bu çözüm yolu bir sorun çıkarmayacaksa da; biraz mükemmeliyetçilik (daha doğrusu paranoyaklık ) varsa oj.c'nin söylediği yöntem hem buna benzer hem de daha uygun olacaktır.

Şu anki durumda diyelim ki sepette dört ürün var ve bunlar 1,2,3,4 şeklinde sıra no'larıyla adlandırıldılar. Şimdi bu uygulamanın çalışması için form gönderildiğinde bu 4 ürün ve sırası bozulmamış olmalı. Bu çok ekstra bir durum ancak diyelim adam başka bi pencerede sepete girdi bir işlem yaptı bu sırayı değiştirdi veya admin tarafında bir değişim oldu bu ürünlerin sıralamaları değişti, 1. sırada ki ürün form gönderilene kadar 3. sıraya gelmiş oldu vs vs. ; bu durumda sıralama bozulduğu için sistem çalışmayacaktır, adetler yanlış ürünlere yazılacaktır.

Çok küçük bi ihtimal olsa da bunu önlemek için bu form alanların isimlerini sıra no değil doğrudan rs("id") numarası olarak koyabilirsin (tabi ki id'ler db'de unique id olmalı). Yani input'lar şu şekilde olacak:

Alıntı:
<input type="text" name="<%=rs("id")%>">
Sepet işlerken kullanılacak kod da böyle:

Alıntı:
for sSiraGuncelle = 1 to oKayitdizisi.recordcount
if oKayitdizisi.eof then exit for
oKayitdizisi.update
oKayitdizisi("sepet_adet") = request.form(oKayitdizisi("id"))
oKayitdizisi.update
oKayitdizisi.movenext
next
Bu şekilde yaptığında sepetteki ürünler loop'a girdiğinde o anki ürünün id'si neyse o id'ye ait bir alan request edilecek, bu id'ler unique olduğu için de, ne herhangi bir çakışma yaşanacak, ne de çok zor bi ihtimal de olsa sepetteki ürün sırası değişime uğrarsa uygulamada sorun çıkacak.

Not: sSiraGuncelle'ye artık gerek kalmadığı için de loop'lar tekrar do while ile yapılabilir.
maestro şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.05.2005   #8 (permalink)
nothingrows
 
Mesaj: n/a
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

@maestro gayet güzel söylemiş, yalnız şu
Alıntı:
<input type="text" name="<%=rs("id")%>">
iken
Alıntı:
name="sId<%=rs("id")%>"
olsa ve güncellerken de
Alıntı:
oKayitdizisi("sepet_adet") = request.form("sId"&oKayitdizisi("id"))
olsa diğer başka bişilerle karışmaz.
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.05.2005   #9 (permalink)
nothingrows
 
Mesaj: n/a
Re: adet<%=rs("id")%> peki if adet="" then nasıl olacak

birde şöyle bir şey var ;
mesela her satıra checkbox koyduk ve sepetteki ürünlerden silinmesi gerekenleri toplu olarak sildireceğiz;

burası sepetteki sil checkbox ı,
Alıntı:
<input name="fSil" type="checkbox" id="fSil" value="<%= oKayitDizisi("id") %>">
buda onu işleyecek kısım;
Alıntı:
sSilId = request.form("fSil")
while instr(sSilId, ",") > 0
sSilId = replace(sSilId, ",", "")
wend
aSilId = split(trim(sSilId), " ")
for each sSilinecek in aSilId
call openObj(oResimleriSil,"DELETE * FROM tbl_sepet WHERE ( id = "& trim(sSilinecek) &" )")
next


not: openObj kendi yazdığım basit bi obje yaratma aparatı, aşağıya çıkardım (daha önce başka biyerlerde de yazmıştım forumda);
Alıntı:
function openObj(objName,sSqlText) '//by nth v2.0
set objName = server.createobject("ADODB.Recordset")
objName.cursortype = 0
objName.cursorlocation = 2
objName.locktype = 1
sSQL = sSqlText
objName.open sSQL, cnnSystem, 1, 3
end function
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

olacak , nasil , then , adetquotquot , peki , adetltrsquotidquotgt


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu microsoft muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.4 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 07:23.