成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

按歌手名拼音首字母進行排序

2010-08-28 10:47:36來源:西部e網作者:

這個東西還是老早老早和幻想曲老兄討論過的

當時弄了一個例子,搞完了隨手也就扔了-_-!

前些天藍色經典論壇那一位朋友問起來,又突然想到了,不過我看到PM的時候,他已經自己搞定了

汗,怕遺忘,加來算篇日志:)

我當時的思路是:

1,目前暫以歌手的拼音首字母排序

2,數據庫中輸入的歌手名稱,直接漢字(除了外國佬:),不帶任何的首字母前綴

3,解決辦法,用一函數(現成的),功能嘛就是提取一段字符串的首字母
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

4,接著一個提取判斷:如果需要首字母為L的,則提取出數據庫中的歌手名,進行轉換函數的附加,與約定的需要的字母L判斷

我弄了個懶方法。


Function show(wchar)
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from mper"
rs.Open sql,conn,1,1

if rs.EOF and rs.BOF then
   response.write ("暫時還沒有記錄")
else
   Do Until rs.EOF
     if getpychar(rs("m_name"))=wchar then
            response.write("歌手:"& rs("m_name"))
     end if
      rs.MoveNext     
   Loop
end if
end function



這個自定義函數,就是顯示數據庫中 某歌手拼音首字母 是 變量wchar對應的值(比如A,B,C,D……)show("L")就是首字母是L的:)

就這樣,功能很快實現了,不過沒有再優化,細化下去-_-!

我的操作步驟:

1,建立數據庫cnvm.mdb

建立表 mper
建立字段 m_id:自動編號,主鍵
建立字段 m_name:文本,歌手名
建立字段 m_zj:文本,歌手專集或歌曲名

2,數據庫連接文件conn.asp



<%
db_path = "cnvm.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)
conn.Open connstr
%>



3,庫文件lib.asp,主要功能見上描述



<!--#include file="conn.asp" -->

<%
function getpychar(char)
tmp=65536+asc(char)
if(tmp>=45217 and tmp<=45252) then 
getpychar= "A"
elseif(tmp>=45253 and tmp<=45760) then
getpychar= "B"
elseif(tmp>=45761 and tmp<=46317) then
getpychar= "C"
elseif(tmp>=46318 and tmp<=46825) then
getpychar= "D"
elseif(tmp>=46826 and tmp<=47009) then 
getpychar= "E"
elseif(tmp>=47010 and tmp<=47296) then 
getpychar= "F"
elseif(tmp>=47297 and tmp<=47613) then 
getpychar= "G"
elseif(tmp>=47614 and tmp<=48118) then
getpychar= "H"
elseif(tmp>=48119 and tmp<=49061) then
getpychar= "J"
elseif(tmp>=49062 and tmp<=49323) then 
getpychar= "K"
elseif(tmp>=49324 and tmp<=49895) then 
getpychar= "L"
elseif(tmp>=49896 and tmp<=50370) then 
getpychar= "M"
elseif(tmp>=50371 and tmp<=50613) then 
getpychar= "N"
elseif(tmp>=50614 and tmp<=50621) then 
getpychar= "O"
elseif(tmp>=50622 and tmp<=50905) then
getpychar= "P"
elseif(tmp>=50906 and tmp<=51386) then 
getpychar= "Q"
elseif(tmp>=51387 and tmp<=51445) then 
getpychar= "R"
elseif(tmp>=51446 and tmp<=52217) then 
getpychar= "S"
elseif(tmp>=52218 and tmp<=52697) then 
getpychar= "T"
elseif(tmp>=52698 and tmp<=52979) then 
getpychar= "W"
elseif(tmp>=52980 and tmp<=53640) then 
getpychar= "X"
elseif(tmp>=53689 and tmp<=54480) then 
getpychar= "Y"
elseif(tmp>=54481 and tmp<=62289) then
getpychar= "Z"
else '如果不是中文,則不處理
getpychar=char
end if
end function
function getpy(str)
for i=1 to len(str)
getpy=getpy&getpychar(mid(str,i,1))
next
end function

Function show(wchar)
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from mper"
rs.Open sql,conn,1,1

if rs.EOF and rs.BOF then
   response.write ("暫時還沒有記錄")
else
   Do Until rs.EOF
     if getpychar(rs("m_name"))=wchar then
      response.write("歌手:"& rs("m_name"))
      response.write("&nbsp;歌名:"& rs("m_zj"))
      response.write("<br>")
     end if
      rs.MoveNext     
   Loop
end if
rs.close 
Set rs = Nothing
end function
%>



4,頁面顯示index.asp,沒有多考慮,用了幾個特例進行調試



<!--#include file="lib.asp" -->

<%
mchr=request.querystring("mchr")
if mchr="" then
%>
    D開頭的<hr>
        <%=show("D")%><br>
    L開頭的<hr>
        <%=show("L")%><br>
    Z開頭的<hr>
        <%=show("Z")%>
<%else%>
    <%=mchr%>開頭的<hr>
        <%=show(mchr)%>
<%end if%>

<%
for i = 65 to 90
response.write("<a href=index.asp?mchr="&chr(i)&">"&chr(i)&"</a>&nbsp;")
next
%>



頁面調試地址:

http://cnbruce.com/test/music/

SO,上面算是我的回憶。再看這位朋友是如何解決的:

http://www.5do8.com/news.asp?id=193
關鍵詞:asp

贊助商鏈接:

主站蜘蛛池模板: 泾阳县| 南阳市| 木兰县| 德安县| 安塞县| 东莞市| 安塞县| 曲水县| 平山县| 阿拉善右旗| 甘谷县| 南开区| 突泉县| 阿拉尔市| 清水河县| 勐海县| 嘉黎县| 天津市| 烟台市| 高邑县| 延庆县| 宁明县| 康保县| 吉木萨尔县| 即墨市| 珲春市| 蓬溪县| 麻江县| 宜良县| 甘泉县| 舒兰市| 康马县| 齐河县| 喀喇沁旗| 冕宁县| 涟源市| 绥阳县| 稷山县| 民勤县| 临邑县| 临桂县|