id alanı sayı olarak tanımlanmış ancak sorgu, metin alanına göre yapılmış.
rssepet.open "select * from sepet where id = '"&session("id")&"'",baglan,1,3
Bu satırdaki tek tırnakların kalkması gerekiyor. Yani
rssepet.open "select * from sepet where id = "&session("id")&"",baglan,1,3
olmalı. Aynı şekilde
rsurun.open "Select * from urun where urunid = '"&rssepet("urunid")&"'" , baglan,1,3
satırı
rsurun.open "Select * from urun where urunid = "&rssepet("urunid")&"" , baglan,1,3
olmalı.
Veri türü uyuşmazlığı hatası :(
16
●1.974
- 05-05-2010, 20:19:53arkadaşım cevabın için teşekkür ederim ancak anlamadığım bi şey var.doronty37 adlı üyeden alıntı: mesajı görüntüle
ilk satırda tek tırnaklar kalmalı demişsin hemen altında yazdığın satır gibi olmalı yazmışsın ancak altındaki satırda tek tırnaklar kalkmamış ve oturum idsi yerine ürün idsine bağlanmışsın.
İkincisi rssepet("urunid") kısmının düzeltmesinde rs_urun_id yazmışsın. _ işareti bi anlama mı geliyor.Neden bu işareti koydun acaba? - 05-05-2010, 20:28:13cevaınız için teşekkürler.Yazdığınız kodları denedim ancak sayfa açılmak için baya bi bekledi ve sonunda zaman aşımına uğradı diye hata verdi.Yani bi türlü yapamadım şu sepet olayınılovemove adlı üyeden alıntı: mesajı görüntüle
- 05-05-2010, 20:43:22arkadaşlar sorunu hallettim.
kodlar aşağıda;
<%
id = session("id")
Set Rs = Server.CreateObject("ADODB.RecordSet" )
Sql = "Select * from sepet where id = '"&id&"' "
Rs.Open sql,baglan,1,3
if Rs.Eof Then
Response.Write " Hiç Bir Ürün Bulunamadi"
End if
Do while not Rs.eof
Set Rs2 = Server.CreateObject("ADODB.RecordSet" )
sql = "Select * from urun where urunid = "&Rs("urunid" )&" "
Rs2.Open sql,baglan,1,3
with Response
.Write " Urun Ad: "&Rs2("urunadi" )&" "
.Write "Urun Fiyat: "&Rs2("kdvdahil" )&" "
.Write "<a href=""sepetten_cikart.asp?id="&Rs2("urunid" )&""">Sepeten Çikart </a> <br />"
End with
Rs.MoveNext
Loop
%>
sorun id değişkenini tanımlamamışım baştan.Tanımladığımda sorun çözüldü.Yardımcı olan herkese çok teşekkürler. - 06-05-2010, 03:12:04Do while not rssepet.eof
Set rsurun = Server.CreateObject("ADODB.RecordSet" )
rsurun.open "Select * from urun where urunid = '"&rssepet("urunid")&"'" , baglan,1,3 (hatayı bu satırda veriyor)
buradaki satırda '"&rssepet("urunid")&"' bu kısım hatalıydı.. ID değerleri ' ' içinde yazılmaz.. o satırdaki hata oydu.. eksik gönderimde ayrı bir hata tabiki.. biz ancak gördüğümüz kod kadarıyla yorum yapabiliriz.. kolay gelsin.. - 06-05-2010, 13:57:43Eğer SQL kullanıyorsanız ' tek tırnağı sorguların hepsinde kullanmanız gerek.. Yani sadece metinlerde kullanılır diye bir durum söz konusu değil..
Metinlerde kesinlikle kullanmak gerekiyor zaten ama sayısal değerlerde kullanılmasa da oluyor. Ama eğer kullanılmazsa da "SQL Injection" gibi bir soruna neden olabilir...
Google'dan aratabilirsiniz "SQL Injection" ı. - 06-05-2010, 18:17:02dediğiniz yanlış. insanları yanlış yönlendirmeyelim. ID sorgularında ' işaret kullanılmaz salt sayısal değerlerde ' işareti kullanılmaz hata verir. 10 yıldır ASP ile uğraşıyorum yanlış yorum yapıp yeni öğrenen kişileri yanlış yönlendirme.. Sql injection ayrı birşey onun için ayrı bir fonksiyon oluşturmak gerekir. eğer bilginiz yoksa öğreteyim ama insanları yanlış yönlendirmeyin..PiYoNASP adlı üyeden alıntı: mesajı görüntüle
Mesajı düzenledim.