 |
|
ผู้รู้ช่วยดูโค๊ต นับจำนวนผู้เยี่ยมชมสินค้าแต่ละรายการให้หน่อยค่ะ มัน error |
|
 |
|
|
 |
 |
|
แล้ว error ว่าอย่างไรครับ
|
 |
 |
 |
 |
Date :
2009-11-05 13:11:44 |
By :
asptuy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Error Type:
Microsoft VBScript runtime (0x800A005E)
Invalid use of Null
|
 |
 |
 |
 |
Date :
2009-11-05 13:57:13 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ดูที่เขียนมันจะซับซ้อนไปมั้ยครับลองเอาแบบนี้ดูครับ
ในดาต้า Advertising สร้างฟิลชื่อ read คำหนดเป็น number ให้ค่าคงที่เป็น 0
ทุกครั้งที่คนเปิดดูชื่อสินค้า มันก็จะ +1 เพิ่มลงไปตลอดครับ
Code (ASP)
<%
Advert_id=request.queryString("Advert_id")
set rs=server.createobject("adodb.recordset")
sql="select * from Advertising where Advert_id ='"&Advert_id&"'"
RS.open Sql,Conn,1,3
C = rs("read")+1
rs("read")=C
rs.Update
%>
|
 |
 |
 |
 |
Date :
2009-11-07 12:11:00 |
By :
asptuy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รบกวนอีกรอบค่ะ ลองเอาโค๊ตที่คุณ tuy ไปลองทำดูแล้วมันก้อยังไม่ได้ค่ะ เผอิญดาต้าเบสเราเป็น sqlserver2000 เลยตั้งชนิด ดาต้า type เป็น number ไม่ได้ค่ะไม่มีชนิดข้อมูลนี้ เลยตั้งชนิดข้อมูลเป็น int ค่ะตั้งค่า Identity Seed=1
Identity Increment =1
แล้วลองเขียนโค๊ตแบบนี้ค่ะ มันเพิ่มลงไปแค่ 1 ค่ะ แต่พอคลิ๊กครั้งที่สองค่าไม่เพิ่มเป็นสองค่ะเพิ่มแค่ครั้งเดียว ช่วยแนะนำอีกรอบค่ะดูเหมือนง่ายนะแต่ทำมัยมันย๊ากยากหรือว่าเรารู้น้อยเนี้ย
Code (ASP)
<%
Advert_id=request.queryString("Advert_id")
set rs=server.createobject("adodb.recordset")
sql="select * from TBL_Advertising where Advert_id ='"&Advert_id&"'"
RS.open Sql,Conn,1,3
rs("read")=Number+1
rs.Update
%>
|
 |
 |
 |
 |
Date :
2009-11-08 21:49:58 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
rs("read") = +1
ดูว่าเพิ่มมั้ยครับ แต่แปลกทำไมกดทีแรกเพิ่มแต่ครั้งที่สองไม่เพิ่ม
ถ้าครั้งแรกกดแล้วบวกเพิ่ม ก็ไม่น่ามีปัญหาแล้วครับตรงนี้ แต่ต้องไปดูลิงก์ว่ายังส่งค่า queryString("Advert_id") อยู่หรือปล่าว ครั้งที่สองอาจไม่มีการส่งค่านี้เลยไม่ยอม + ให้
|
 |
 |
 |
 |
Date :
2009-11-09 11:47:52 |
By :
asptuy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่มให้แค่ค่า 1 เหมือนกันค่ะ พอคลิ๊กครั้งที่สองก็ไม่เพิ่มอีกเหมือนเดิม หรือว่ามันต้องวนลูปอะไรรึเปล่าค่ะ
<%
Advert_id=request.queryString("Advert_id")
set rs=server.createobject("adodb.recordset")
sql="select * from TBL_Advertising where Advert_id ='"&Advert_id&"'"
RS.open Sql,Conn,1,3
rs("read")= +1
rs.Update
%>
แต่ถ้าใช้รูปแบบด้านล่างมันจะบวกเพิ่มให้เมื่อมีการคลิ๊กแต่ค่า read ในดาต้าเบสต้องเป็นหนึ่งแล้วมันถึงจะบวกเพิ่มให้แต่ถ้าดาต้าเบสเป็นค่าว่างมันก็จะไม่บวกเพิ่มให้ ค่ะ แต่ก็ลองทดสอบ ให้ rs("read")= null หรือ rs("read")= 0 ให้บวก หนึ่งก็ไม่ได้อีก งง
<%
Advert_id=request.queryString("Advert_id")
set rs=server.createobject("adodb.recordset")
sql="select * from TBL_Advertising where Advert_id ='"&Advert_id&"'"
RS.open Sql,Conn,1,3
if rs.eof then
rs.addnew
rs("read")=1
else
rs("read")= rs("read")+1
end if
rs.update
rs.close
%>
|
 |
 |
 |
 |
Date :
2009-11-09 14:01:09 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (ASP)
If Request.Form("CountPost")<>"" Then
Set rs=Server.CreateObject("ADODB.Recordset")
tuySql= "SELECT * FROM ann Where Web_Code="&Request.Form("CountPost")&""
rs.open tuySql,conn,0, 3, 512
rs("Web_Post")=rs("Web_Post")+1
rs.Update
End If
OK นี่โคดที่ผมใช้อยู่ครับ มัน + เพิ่มได้ รู้แล้วครับ
conn,0, 3, 512 นี่ไงคือตัวเหตุ ถ้าไปใช้ Conn,1,3 มันจะอ่านได้อย่างเดียว
rs("read") ต้องเป็น 0 ขึ้นไปนะครับ ห้าม null ไม่งั้น + ไม่ได้
|
 |
 |
 |
 |
Date :
2009-11-09 19:01:39 |
By :
The Asp-Tuy Nonlogin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่มเต็มครับหากได้แล้วนะ
การเก็บจำนวนแบบนี้บอกละเอียดอะไรไม่ได้มากครับ อาจโดนปั่นค่าจำนวนได้ง่าย เช่นมีคนใส่ ?Advert_id=9999999 แบบนี้ตรง URL โคดมันก็ + ให้ 
ลองทำตารางใหม่ เชื่อมกับตารางหลัก ใช้เลขไอดีอ้างกัน ทีนี้ก็สามารถเก็บค่า session ,ip ,date หรืออื่น ๆ ตามที่คิดออกได้แล้วครับ จะได้วิเคราะห์ออกว่า ใคร จากไหน ทำอะไร ยังไง ทำนองนี้ครับ อาจจะดูยากแต่ก็ยากจริงหล่ะ 
|
 |
 |
 |
 |
Date :
2009-11-09 19:10:02 |
By :
ไอ้ด้านบน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณทุกคำแนะนำค่ะจะลองจนสุดความสามารถหากไม่ได้จะมาโพสต์อีกค่ะ
|
 |
 |
 |
 |
Date :
2009-11-09 20:21:45 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|