程式|分頁|關鍵字|資料|資料庫|顯示 資料庫顯示程式,能調任意庫,任意欄位,多關鍵字搜尋,自動分頁.
阿餘經常寫一些資料庫相關的程式,當然離不開顯示庫中的資料了,說實話,做這樣的程式真是無聊啊,所以,阿餘就想寫個函數,一個通用的資料庫顯示函數.要求如下:
1. 能顯示指定的欄位,當然,欄位名和顯示的文字可以不一樣.
2. 能同時按多個欄位進行查詢,支援模糊和精確兩種查詢方式.
3. 有橫向排列和縱向排欄欄位兩種顯示方式.
4. 能自動分頁.
5. 能設定每頁顯示多少條記錄.好啦,要求大至就是這樣了.根據這個要求,阿餘寫了下面的函數.
實際上,這裡阿餘寫了兩個函數.一個是TABDISP(),用於顯示一個指定表中的內容.還有一個是ER()一個小小的錯誤處理函數.
這個函數有5個參數(真夠多的).並且各個參數都要輸入資料,不能是空白,不然會出錯的.
1(TAB), 要調用的表名.
2(DISPFILD), 要顯示表中的哪一些欄位,如欄位名和要顯示的字元不一樣用<分隔.比如某一個欄位名為:IMG,但要在頁面上顯示為:圖片, 那麼,就寫為IMG<圖片,如果有多個欄位,各欄位間用“,”分隔,唉,老聲長談.
3(FINDFILD), 要按哪些欄位進行查詢,欄位名和要顯示的字元間用<分隔.
4(PAGEN), 每頁顯示多少條記錄.
5(FH), 顯示的方向.當為S時縱向顯示.為H時橫向顯示.
函數的傳回值,當沒有出錯的時候,傳回值為真,否則為假.
這個函數中沒有包括串連到資料庫的部分.所以要自己串連到庫.另外,為了重複應用.可以把這個函數專門用一個檔案來儲存,然後在需要的時候包含這個檔案.
看下面的函數: (不要不看完,最後我舉有應用的例子)
<%
'以下定義一個顯示表格的函數TABDISP(),參數TAB,被顯示的表名,DISPFILD,要顯示的欄位,FINDFILD,查詢欄位,PAGEN,每頁顯示數量,fh,顯示的方向
'如顯示成功,傳回值為真,不成功,傳回值為假.
'多個欄位間用,分隔
'查詢欄位一定要包含在顯示欄位中.
'如欄位名與要顯示的名稱不一樣,用<分隔,前面是欄位名,後面是顯示的名字,而要進行搜尋的欄位則一定要用<分隔要欄位名和顯示字元
'FH顯示方向為"H"時作橫向顯示,為"S"時作縱向顯示 區分大小寫
FUNCTION TABDISP(TAB,DISPFILD,FINDFILD,PAGEN,FH)
On Error Resume Next
IF DISPFILD="" THEN DISPFILD="*"
IF PAGEN="" THEN PAGEN=15
DISPFILD1=DISPFILD&","
findfild1=findfild&","
dim findl(10),findr(10)
i1=1
do while instr(findfild1,",")<>0
star=instr(findfild1,",")
findl(i1)=left(findfild1,star-1)
findr(i1)=findl(i1)
fildbak=findl(i1)
findl(i1)=left(fildbak,instr(fildbak,"<")-1)
findr(i1)=right(fildbak,len(fildbak)-instr(fildbak,"<"))
findfild1=right(findfild1,len(findfild1)-star)
i1=i1+1
loop
Response.Write "<table border='0' width='100%' cellspacing='0'><tr><form method='GET'>"
Response.Write "<TD > " 'width='50%'
IF SESSION("FLMENULBUP")<>"" THEN
Response.Write "當前欄目:<A HREF='FLMEN.ASP?MENULB="&SESSION("FLMENULBUP")&"'>"&MID(SESSION("FLMENULBUP"),4,200)&""
END IF
IF SESSION("flmenulb")<> SESSION("FLMENULBUP") THEN
Response.Write " >> <A HREF='FLMEN.ASP?menulb="&SESSION("FLMENULBUP")&"&LB="&SESSION("flmenulb")&"'>"&MID(SESSION("flmenulb"),4,200)&""
END IF
Response.Write "</TD><td align='right' ></td><td align='right'><table border='0' cellspacing='0' cellpadding='0'> "
Response.Write "<tr><td rowspan='2'><img src='http://www.163design.net/a/s/img/SEARCH.GIF' width='50'> </td>"
for i3=1 to i1-1
Response.Write "<td>"&findr(i3)&":</td>"
next
Response.Write "</tr><tr>" '<td></td>
for i2=1 to i1-1
Response.Write "<td><input type='text' name='key_word"&i2&"' size='8' value=''></td>"
next
Response.Write "<tr></table></td><td width='20%'> <input type='checkbox' name='find_fr' value='yes'>精確 <input type='submit' value='開始' name='B_FIND'></td>"
Response.Write "</form> </tr></table>"
find_fr=request("find_fr")
TJ=""
urllr="&find_fr="&find_fr
findlrdisp=""
FOR I3=1 TO I1-1
TJ1=request("KEY_WORD"&I3)
urllr=urllr&"&key_word"&i3&"="&tj1 &