Asp Çoklu Kayıt
-
Arkadaşlar çoklu kayıt işlemi yapmak istiyorum dbden çektiğim kodlar asagıdakı gıbıdır yazdırmada sorun yok sorun kayıt işlemini birtürlü yapamadım. Yardımınıza ihtiyacım var.
<%
dim kactane
kactane = rs.recordcount
%>
<%for i=(kactane) to (kactane)%>
<input type="hidden" name="deger1<%=(i)%>" value="<%=rs("1")%>" size="20">
<input type="hidden" name="deger2<%=(i)%>" value="<%=rs("2")%>" size="20">
<input type="hidden" name="deger3<%=(i)%>" value="<%=rs("3")%>" size="20">
<input type="hidden" name="deger4<%=(i)%>" value="<%=rs("4")%>" size="20">
<input type="hidden" name="deger5<%=(i)%>" value="<%=rs("5")%>" size="20">
<%next%> -
Anlamamakla birlikte ne yaptığınızı listelemenizde de sıkıntı var diyebilirim... Bu döngü bir kere döner...
for i=kactane to kactane
şöyle olmalı gibi...
<%
dim kactane
kactane = rs.recordcount
%>
<%for i=0 to (kactane)%>
< ="" />name="deger1" value="" size="20">
< ="" />name="deger2<%=(i)%>" value="" size="20">
< ="" name="deger3<%=i%>" value="<%=rs" />" size="20">
< ="" name="deger4<%=i%>" value="<%=rs" />" size="20">
< ="" name="deger5<%=i%>" value="<%=rs" />" size="20">Bu işlemi yaptıktan sonra kaydedeceğin sayfaya kactane değerini de göndermelisin...
kaydet.asp?deger=kactane
Kaydetme işlemimiz...
nekadar=request.querystring(deger)
for i=0 to nekadar
set RS=baglanti.execute("insert into tablonuz tabloAlan1='"request.form("deger1"&i)"', tabloAlan2='"equest.form("deger2"&i)"', ...............uzatın işte
set RS=nothing
next
denemedim bilgisayar başında yazdım hatada varsa şu tek çift tırnaklarla alakalıdır...
Kolay gelsin...
-
hata aldım suan dedıgın gıbı cıft tek tırnak mevzusnda verdı arastıryrm suan nerede oldugunu tesekkur ederım ılgın ıcın sonucu paylasacagım
-
Yok bulamadım birtürlü muhtemelen çok küçük bir ayrıntı ama hala aynı.
-
<%for i=(kactane) to (kactane)%> olarak yazmışsın
<%for i=1 to (kactane)%> olarak değiştir.
-
Ontedi öncelikle çok selamlar çok yardımın oldu bana burada tekrar görmek beni mutlu etti.
Şimdi <%for i=1 to (kactane)%> yazdığımda kaydederken nasıl kaydetmeliyim
-
<input type="hidden" name="kactane" value="<%=kactane%>" size="20">
<%for i=1 to kactane%>
<input type="hidden" name="deger<%=(i)%>" value="<%=(i)%>" size="20">
<%Next%>Post ettiğin sayfada
'#############################
intKacTane = Request("kactane")
for i=1 to intKacTane
response.write request.form("deger"&i&"")
response.write "<br />"
next
'#############################
Böyle bir yap, bakalım istediğine yakın mı? -
ne kadar işine yarar bilemem fakat ben genelde ilerde dbde değişiklik yaparsam kodlarda boğulmayayım diye kolaya kaçarım. her ne kadar amelece de olsa şu sistemi kullanırım;
tek bir kayıt, birden fazla hücreye veri eklemek için;
For zz=1 To Request("veri").Count
kayitlar=kayitlar&request("veri")(zz)
hucreler=hucreler&"hucreadi"&zz
IF zz<>Request("veri").Count Then
kayitlar=kayitlar&", "
hucreler=hucreler&", "
END IF
Next
DB.Execute("INSERT INTO tablo ("&hucreler&") VALUES ("&kayitlar&")")
----------
tek bir kayıt, birden fazla hücreyi güncellemek için;
For zz=1 To Request("veri").Count
kayitlar=kayitlar&"hucreadi"&zz&"='"&request("veri")(zz)&"'"
IF zz<>Request("veri").Count Then kayitlar=kayitlar&", "
Next
DB.Execute("UPDATE tablo SET "&kayitlar&" WHERE id="&request("id")&"")
---------
dikkat edilecekler
Form sayfasındaki name= değerlerinin tümü "veri" olmalıdır.
update yaparken extradan id= query yollatman lazım haliyle.
Elbette dbdeki hücre adları da xxx1 xxx2 xxx3 şeklinde gitmeli.
---------
tüm tablodaki, tüm idler ve hücreleri güncellemek için;
uzun uzun yazamicam onu da ancak mantık, tüm verileri + hücreleri çekip form alanlarını oluşturmak ve name= değerlerini her id için veri"&rs("id")&" şeklinde çektirmen.
güncellemeye yollarken de yine dbden sadece idleri döngüye alıp,
-db döngü başlat
For zz=1 To Request("veri"&rs("id")&"").Count
kayitlar=kayitlar&"hucreadi"&zz&"='"&request("veri"&rs("id")&"")(zz)&"'"
IF zz<>Request("veri"&rs("id")&"").Count Then kayitlar=kayitlar&", "
Next
DB.Execute("UPDATE tablo SET "&kayitlar&" WHERE id= "&rs("id")&" ")
zz=0;kayitlar=null-db döngü next
şeklinde olacaktır..
Bu tür karmaşık işlerde direk site kodların üzerinde değil de boş bir sayfada çalışırsan hem hatalarını görmen, telafi etmen kolay olur hem de kavrayışın kolaylaşır.
-
Ontedi : gönderdiğin kodları post ettiğin sayfada istediğim gibi yazdırdı bende db kayıt işlemi yaparak denedim oldu ancak birden çok hidden textboxda aynı şekide çoğallttım kaydetti ancak 11, 21, 31, 41, 51, 61 şeklinde kaydetti 6 farklı kayıt vardı 6 tane kayıt ekledi ama yazdığım gibi ekledi.
Pesimist : boş sayfada deniyorum senin kodlara da daha sonra ihtiyacım olacak aslında çok önceleri ihtiyacım olmuştu bu tarz birşeye çok teşekkür ederim.
-
ontedi seni burda görmek güzel bu birincisi :)
diğeri arkadaş şöyle bişey yapıyor sanırım
1. sıra ------------ ------------ ------------ ------------ ------------
2.sıra ------------ ------------ ------------ ------------ ------------
.
.
.
Yani hem alt alta kayıtlar var, hemde her kayıtın 5 alanı var... O yüzden
deger1<%=(i)%> deger2<%=(i)%>
ifadeleri doğru ama o for döngüsü yanlış bende uyardım...
ve çıktı için (eğer ben yanlış anlamadıysam yukarıdaki gibiyse) şöyle olmalı
intKacTane = Request("kactane")
for i=1 to intKacTanefor k=1 to 5
response.write request.form("deger"&i&k&"")next
response.write "<br />"
next(Şu tek çift tırnaklarla başım dertte sorun varsa yine orya bak :) Dene bakalım böyle olacak mı?
-
Pesimist : İlgine teşekkür ederim db e kayıt ettiriyorum ben bunları bi tablodan hidden textbaxlarda aldıgım verilri baska tabloya eklettiriyorum formla
<%
intKacTane = Request.querystring("kactane")
set kayit = server.createObject("Adodb.Recordset")
sql = "SELECT * From qwerty"
kayit.open sql, baglantimiz, 1,3
for i=1 to intKacTane
kayit.addnew
kayit("value1") = request.form("value1"&i&"")
kayit("value2") = request.form("value2"&i&"")
kayit("value3") = request.form("value3"&i&"")
kayit("value4") = request.form("value4"&i&"")
kayit("value5") = Session("value5")
kayit("value6") = Session("value6")
kayit.update
next
%><script>
alert("Eklendi")
location.href="Default.asp";
</script>
