台灣最大程式設計社群網站
線上人數
848
 
會員總數:245819
討論主題:189440
歡迎您免費加入會員
討論區列表 >> ASP >> 資料判斷問題!!!!!!
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料判斷問題!!!!!!
價值 : 10 QP  點閱數:347 回應數:10
樓主

梅子
門外漢
0 7
110 16
發送站內信

捐贈 VP 給 梅子
不好意思,小妹是新手,若提問有什麼不足之處,請鞭小力一點,感謝大大!!

目前資料庫有2筆資料
會員編號 姓名
000139 小明
002450 小明


2個人同名,想要讓這2筆判斷如果姓名=小明 輸入的會員編號不等於這2個號碼的話顯示輸入的會員編號錯誤
目前是寫迴圈下去判斷,但是輸入正確的編號都會出現輸入的會員編號錯誤,以下是我的程式碼,請各位大大幫忙看一下,謝謝!!

no = Request("編號")
name = Request("姓名")
Set accdb_RS=Server.CreateObject("ADODB.Recordset")
accdb_RS.Open "Select * From 會員基本資料表 Where 姓名 like '%"&Request("姓名")&"%' ORDER BY 會員基本資料表.會員編號 DESC" ,cnn_DB,1,2

accdb_RS.MoveFirst
For i=1 To accdb_RS.RecordCount Step 1
IF name = accdb_RS("姓名") and no <> accdb_RS("會員編號") Then
Response.Write("<p>&nbsp;<p>&nbsp;<p>&nbsp;<p>&nbsp;<p align ='center'><font size='4' color='blue'>您輸入的會員編號錯誤 </font>")
Response.Write("<br><a href='#' onClick='javascript:window.history.go(-1);return false;'>回上頁</a><p align='center'>")
Response.End
End If
accdb_RS.MoveNext
Next




搜尋相關Tags的文章: [ 迴圈,資料判斷 ] ,
本篇文章發表於2020-02-14 12:01
1樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
很理所當然的問題
你現在的判斷是輸入的編號不等於資料庫取得的編號值,就會顯示錯誤
但是你資料庫中有兩筆符合的資料,而且編號還不相同,所以一定會顯示錯誤
你要先宣告一個變數,當輸入的編號和資料庫取得的編號相同時,變更這個變數值
最後依據變數值來判斷,輸入正確還是錯誤
本篇文章回覆於2020-02-14 18:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

梅子
捐贈 VP 給 梅子 檢舉此回應
我照您說的寫過變數了,但我在表單輸入139的小明時候,它還是會顯示會員編號錯誤喔,但我輸入2450小明的時候,就沒有問題,所以我一直是覺的判斷式只會判斷第一筆,而不會在我輸入139小明的時候讓我輸入正確。
本篇文章回覆於2020-02-15 09:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

梅子
捐贈 VP 給 梅子 檢舉此回應
而且我檢查變數的值時,發現輸入139小明的時候,名字會出來139不會顯示,但輸入2450小明的時候,會全部顯示,請問這是何解?
本篇文章回覆於2020-02-15 10:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
您的電腦沒錯

1. 您用 139 小明 RS.Open 時會取得二筆 依序是
002450 小明
000139 小明

2. 比對第一筆時 2450 小明
IF name = accdb_RS("姓名") and no <> accdb_RS("會員編號") Then <---叫小明 但不是139 就結束了(沒錯)
..
..
response.end
end if

3. 您用 2450 小明 RS.Open 時會取得二筆 依序是
002450 小明
000139 小明

4. 比對第一筆時 2450 小明
IF name = accdb_RS("姓名") and no <> accdb_RS("會員編號") Then <---叫小明 是2450 就不結束
.. <---不執行
response.end <---不執行
end if

5. 用比對第二筆時 139 小明
IF name = accdb_RS("姓名") and no <> accdb_RS("會員編號") Then <---叫小明 但不是2450 就結束了
..
..
response.end
end if
本篇文章回覆於2020-02-17 23:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
所以我不是說了嗎
不要在比對的時候判斷
比對只在符合時變更變數值
在跑完所有比對後,再依據變數值做判斷
本篇文章回覆於2020-02-18 09:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

梅子
捐贈 VP 給 梅子 檢舉此回應
我有照您寫的變數下去判斷,但不知道為什麼會有錯誤,可以麻煩幫我看一下嗎

no = Request("編號")
name = Request("姓名")
Set accdb_RS=Server.CreateObject("ADODB.Recordset")
accdb_RS.Open "Select * From 會員基本資料表 Where 姓名 = '"&Request("姓名")&"' ORDER BY 會員基本資料表.會員編號 DESC" ,cnn_DB,1,3


dim as
if no = accdb_RS("會員編號") Then
as = accdb_RS("會員編號")
End if

IF name = accdb_RS("姓名") and no <> as Then
Response.Write("<p>&nbsp;<p>&nbsp;<p>&nbsp;<p>&nbsp;<p align ='center'><font size='4' color='blue'>您輸入的會員編號錯誤 </font>")
Response.Write("<br><a href='#' onClick='javascript:window.history.go(-1);return false;'>回上頁</a><p align='center'>")
Response.End
End If

本篇文章回覆於2020-02-18 11:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

P陳
檢舉此回應
您改成這樣永遠只比對 小明2450 那筆而已 小明139 那筆就不會被比較到了
本篇文章回覆於2020-02-18 14:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
超傻眼的......
我手邊沒有ASP主機可以測試,我就直接拿你原本的程式碼去改

宣告變數flag為0作為判斷依據
在迴圈中比對符合時將flag值變更為1
跑完迴圈後再比對flag值,如果是0表示所有資料都不符合
那就顯示編號錯誤訊息
心好累......
本篇文章回覆於2020-02-19 09:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
題外話
>>2個人同名,想要讓這2筆判斷如果姓名=小明 輸入的會員編號不等於這2個號碼的話顯示輸入的會員編號錯誤
依上述需求,建議直接在SQL Command中處理就好
本篇文章回覆於2020-02-19 09:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

梅子
捐贈 VP 給 梅子 檢舉此回應
8樓的大大,感謝您,可是我跑還是有錯誤

9樓的大大,感謝您,但如果資料全部輸入錯誤它不會跑會員編號及姓名錯誤
本篇文章回覆於2020-02-19 16:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.