Yazanlarda |
|
jeton Yeni Üye
Kayıt Tarihi: 30-Ocak-2006 Gönderilenler: 11
|
Gönderen: 14-Mayıs-2012 Saat 14:50 | Kayıtlı IP
|
|
|
aslında arkadaslar forumda baska konu acmıstım ama mevcut
mantıktan vazgectim... yerine baska birsey yapmaya karar
verdim o sebeple yeni baslık acmam gerektiğini dusundum
veritabanında siparisler isimli tablomda
uyead
urunadi
adet
kargo
gibi sutunlar var
bunların herbiri içinde birbirinden virgulle ayrılmıs
urun adı , adet, kargo
bilgileri kayıtlı
örnek:
bunları asagıdaki kodlamaya göre split ile nasıl bölüp
duzenli listeleyebilirim
--------------------------
b_sql = Empty
b_sql = b_sql & " SELECT * FROM siparisler"
b_sql = b_sql & " ORDER BY ID desc"
<td height="90">
<table width="944">
<tr>
<td width="201"><%=Rec("uyead")%></td>
<td width="526"><%=Rec("urunad")%></td>
<td width="152"><%=Rec("adet")%></td>
<td width="260"><%=Rec("kargo")%></td>
</tr>
</table></td>
---------------------------------
teşekkürler
|
Yukarı Dön |
|
|
fanatik Üye
Kayıt Tarihi: 11-Nisan-2012 Gönderilenler: 76
|
Gönderen: 14-Mayıs-2012 Saat 22:11 | Kayıtlı IP
|
|
|
Diğer konuya cevap veriştim. Normalizasyon kuralı ile yapılması profosyonel yazılımcı olmak için şarttır.
buna da cevap verelim.
<% Dim UrunlerSplit Dim AdetSplit Dim UrunlerSplit 'değişkenlerin en üste tanımlanması fonksiyon dısında değişkenlere erray olarak erişebilmeni sağlamaktadır.
'Class/function/method tanımlamak da bir yazılım kuralıdır. 'fonksiyon kodunu sayfanın en üstüne yerleştir.
Function SatisSplit(RsUrun,RsAdet,RsKargo) UrunlerSplit = Split((RsUrunler),",") AdetSplit = Split((RsAdet),",") KargoSplit = Split((RsKargo),",") For i = 0 to Ubount(UrunlerSplit) SatisSplit = SatisSplit & UrunlerSplit(i) & "Adlı urunden "& AdetSplit(i) & " Adet" & KargoSplit(i) & " Kargoya<br />" Next End Function %>
'Kullanımı
b_sql = Empty b_sql = b_sql & " SELECT * FROM siparisler" b_sql = b_sql & " ORDER BY ID desc" 'BU ARADA SQL Sorguları bu şekilde kullanılmaz.
<%= SatisSplit(Rec("urunad"),Rec("adet"),Rec("kargo")) %>
__________________ http://www.googledostu.com
Türk Sosyal İmleme Sitesi
|
Yukarı Dön |
|
|
jeton Yeni Üye
Kayıt Tarihi: 30-Ocak-2006 Gönderilenler: 11
|
Gönderen: 15-Mayıs-2012 Saat 13:16 | Kayıtlı IP
|
|
|
fanatik hocam dediğinizi yaptı ama sonuc degismedi
daha iyi izah edebilmem icin örnegi göstermek istiyorum
bu siparisler isimli tablo
buda siparisler.asp nin nasıl göründüğü
buda siparisler.asp kodları
---------------------------------------------
<%
Dim UrunlerSplit
Dim AdetSplit
Function SatisSplit(RsUrun,RsAdet,RsKargo)
UrunlerSplit = Split((RsUrunler),",")
AdetSplit = Split((RsAdet),",")
KargoSplit = Split((RsKargo),",")
For i = 0 to Ubount(UrunlerSplit)
SatisSplit = SatisSplit & UrunlerSplit(i) & "Adlı
urunden "& AdetSplit(i) & " Adet" & KargoSplit(i) & "
Kargoya<br />"
Next
End Function
%>
<%
b_sql = Empty
b_sql = b_sql & " SELECT * FROM siparisler"
b_sql = b_sql & " ORDER BY ID desc"
Set Rec = Server.CreateObject("ADODB.RecordSet")
Rec.Open b_sql,Conn,1,3
If Not Rec.EOF Then
pg = Trim(Request.QueryString("pg"))
If pg = "" Or IsNumeric(pg) = False Then pg = 1
Rec.PageSize = 8
Rec.AbsolutePage = pg
%>
<p> </p>
<div align="center">
<table width="83%" cellpadding="0" cellspacing="0"
align="center">
<tr>
<%
For I = 1 to Rec.PageSize
%>
<table width="800">
<tr>
<td width="270"> <%=Rec("uyead")%> </td>
<td width="329"><%=Rec("urunad")%> </td>
<td width="235"><%=Rec("adet")%> </td>
<td width="179"><%=Rec("kargo")%> </td>
</tr>
</table>
<%
IF (I MOD 4) = 0 Then Response.Write "</tr><tr><td
height=""1"" colpspan=""5""></td></tr><tr>"
Rec.MoveNext
If Rec.EOF Then Exit For
Next
%>
</tr>
</table>
<% if not pg-1 <= 0 Then%>
<a href="?pg=<%=pg-1%>&islem=urunler&KatID=
<%=KatID%>" style="color:666666"> <img
src="images/geri.jpg" align="absmiddle" /></a>
<%End if %>
<% For i =1 to Rec.PageCount%>
<a href="?pg=<%=i%>&islem=urunler&KatID=
<%=KatID%>" style="color:666666"><b><%=i & " "%></b>
</a>
<%Next%>
<% if not pg+1 > Rec.PageCount Then%>
<a href="?pg=<%=pg+1%>&islem=urunler&KatID=
<%=KatID%>" style="color:666666"><img
src="images/ileri.jpg" align="absmiddle" /></a>
<%end if%>
</div>
<p align="center">
Sayfa Numarası: <b><%=pg%>.</b> Sayfadasınız...
<%
Else
Response.Write "Siparis Yok"
End IF
Set Rec = Nothing
%>
---------------------------------------------
ben istiyorum ki uyenin adı yazsın yanına siparis ettiği
urunler alt alta görünsün karsılarında da kac adet
siparis vermis ve kargo bedavamı ücretlimi o yazsın...
yardımcı olursanız sevinirim..
tesekkurler
|
Yukarı Dön |
|
|
fanatik Üye
Kayıt Tarihi: 11-Nisan-2012 Gönderilenler: 76
|
Gönderen: 15-Mayıs-2012 Saat 15:47 | Kayıtlı IP
|
|
|
<%= SatisSplit(Rec("urunad"),Rec("adet"),Rec("kargo")) %>
Fonksiyonu bu sekilde kullanacaksın
1- )Tanımlamada Dim UrunlerSplit satırı eksik 2-)Fonksiyonu bu sekilde kullanacaksın <%= SatisSplit(Rec("urunad"),Rec("adet"),Rec("kargo")) %>
3-) <table width="800"> <tr> <td width="270"> <%=Rec("uyead")%> </td> <td width="329"><%=Rec("urunad")%> </td> <td width="235"><%=Rec("adet")%> </td> <td width="179"><%=Rec("kargo")%> </td> </tr>
</table>
Yerine
<table width="800"> <tr> <td width="270"> <%=Rec("uyead")%> </td> <td width=""><%= SatisSplit(Rec("urunad"),Rec("adet"),Rec("kargo")) %></td> </tr> </table>
4-) virgul sayısına göre işlem yapıldıgı için ürün,adet ve kargo bilgileri virgulle kaydedilmeli örnek olarak bir adet x malı y kargosuna urunler = x, adet = 1, kargo = y, şeklinde kayıt yapılmalı.
Düzenleyen fanatik 15-Mayıs-2012 Saat 15:52
__________________ http://www.googledostu.com
Türk Sosyal İmleme Sitesi
|
Yukarı Dön |
|
|
jeton Yeni Üye
Kayıt Tarihi: 30-Ocak-2006 Gönderilenler: 11
|
Gönderen: 15-Mayıs-2012 Saat 16:24 | Kayıtlı IP
|
|
|
önce tesekkur ederim fakat şimdi şu hatayı verdi
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'Ubount'
siparisler.asp, line 11
-----------------
şu satır
For i = 0 to Ubount(UrunlerSplit)
-----------------
nette baktım net birşey bulamadım
|
Yukarı Dön |
|
|
fanatik Üye
Kayıt Tarihi: 11-Nisan-2012 Gönderilenler: 76
|
Gönderen: 15-Mayıs-2012 Saat 19:23 | Kayıtlı IP
|
|
|
4-) virgul sayısına göre işlem yapıldıgı için ürün,adet ve kargo bilgileri virgulle kaydedilmeli örnek olarak bir adet x malı y kargosuna urunler = x, adet = 1, kargo = y, şeklinde kayıt yapılmalı.
Virgul bulamadı diyor.
__________________ http://www.googledostu.com
Türk Sosyal İmleme Sitesi
|
Yukarı Dön |
|
|
jeton Yeni Üye
Kayıt Tarihi: 30-Ocak-2006 Gönderilenler: 11
|
Gönderen: 15-Mayıs-2012 Saat 22:29 | Kayıtlı IP
|
|
|
virgül bulamadı demissiniz ancak siparisler
tablosunda(yukarıda resmi var) verilerin arasında virgül
var .. ben mi yanlış anladım durumu bilemiyorum???!!
|
Yukarı Dön |
|
|
fanatik Üye
Kayıt Tarihi: 11-Nisan-2012 Gönderilenler: 76
|
Gönderen: 16-Mayıs-2012 Saat 00:00 | Kayıtlı IP
|
|
|
4 kez cevap yazıyorum 4 ünde de aynı cumleler var. kopyala yapıştır yapmak yerine anlamak için çaba göster. Bu son cevabım.
virgul sayısına göre işlem yapıldıgı için ürün,adet ve kargo bilgileri virgulle kaydedilmeli örnek olarak bir adet x malı y kargosuna urunler = x, adet = 1, kargo = y, şeklinde kayıt yapılmalı.
156 kayıtta UrunAd adet ve kargo alanlarında irgul yok. kayıtların sonuna virgül gelmeli.
157. kayıtta 2 adet ürün kaydedilmiş oysa 1 virgül var gene aynı sekilde kayıtların sonuna virgül gelecek yani virgüller aralarda ve sonlarda olacak.
Düzenleyen fanatik 16-Mayıs-2012 Saat 00:02
__________________ http://www.googledostu.com
Türk Sosyal İmleme Sitesi
|
Yukarı Dön |
|
|
jeton Yeni Üye
Kayıt Tarihi: 30-Ocak-2006 Gönderilenler: 11
|
Gönderen: 16-Mayıs-2012 Saat 00:45 | Kayıtlı IP
|
|
|
fanatik hocam son mesajım demişsiniz ben yinede teşekkür
ederim.. dediğinizi anladım ve siparisler tablosunda her
siparisin her adedin her kargo durumunun sonuna virgül
koydum ancak yine aynı satırda aynı hatayı verdi...
dediğim gibi yinede zahmet edip yardım etmeye
calıstıgınız icin tesekkur ederim...
not1: derdim hic kopyala yapıstır olmadı anlamaya gayret
ettim , mantıgını anlamadan
bisey yapmak istemedim.. kendi basıma ögrenmeye gayret
ediyorum bu nedenle bu kadar cok sorup yardım istedim...
not2:verdiği hatanın sebebi virgül degil Ubound
kelimesiini yazılımındaymıs bende cok sonra farkettim
ancak kelimeyi düzgün yazınca hata vermemesine ragmen
halen sonuc alamadım uzerinde calısacagım
tesekkurler.....
Düzenleyen jeton 16-Mayıs-2012 Saat 09:29
|
Yukarı Dön |
|
|
fanatik Üye
Kayıt Tarihi: 11-Nisan-2012 Gönderilenler: 76
|
Gönderen: 16-Mayıs-2012 Saat 12:15 | Kayıtlı IP
|
|
|
For i = 0 to int(Ubound(UrunlerSplit))-1
şu şekilde düzenlersen sorun düzelir.
ornek veriyorum 2 virgul bulundu.
0 dan basladığı için 0 - 1 - 2 değerleri için işlem yapacaktır. Yani yapmaya calıştığı işlem sayısı 3 olacaktır.
-1 dediğimizde 2 virgül için 2 işlem yapacaktır. böylece virgülün bulunmama sorun u ortadan kalkacaktır.
Düzenleyen fanatik 16-Mayıs-2012 Saat 12:19
__________________ http://www.googledostu.com
Türk Sosyal İmleme Sitesi
|
Yukarı Dön |
|
|