2011-06-21 23 views
3

メニューURLと属性をデータベースから読み込むことはできますか?データベースの動的メニュー項目

ダイナミックニュースセクションを組み込むサイトを構築しています。メニューを再編集することなく、メニューに新しいニュースアイテムを含めるとよいでしょう。

私はAccessとASPを使用しています。

+0

なぜアクセスしますか?それは実際にウェブサイトのバックエンドにとって最も適切なデータベースではありません。 –

答えて

1

私は現在ASP-SQL2000駆動メニューを完成しました。私は1つのテーブルと1つのクエリを実行します。

の表は、最低でも必要になります -

ID (INT) 

label (char or varchar - the text that appears on the page) 
sub (BIT or Boolean - if true then it has submenus) 
level (the parent link - for submenus only) 
link (char or varchar - what happens when you click!) 
seq (INT - to order the menus and submenus) 

ルートメニュー項目のSQLまたはクエリ: -

SELECT [id],label,[level],sub,link FROM TOC where level=0 order by seq 

を次に: - については

SELECT [id],label,[level],sub, [link] FROM TOC WHERE [level]<>0 order by [level],seq 

サブメニュー..

最後にASP(oMenuRootはROOTメニューのレコードで、oMenuSubはSUBメニューのレコードである: -

<%do until oMenuRoot.eof%> 
,"<%=oMenuRoot("label")%>","<% 
if oMenuRoot("sub") then 
response.write "show-menu=" & oMenuRoot("id") 
else 
response.write Application("homePage") & "?" & oMenuRoot("link") 
end if 
%>",,"",1<%=vbcrlf%> 
<%intRoots=intRoots+1 
oMenuRoot.movenext 
loop 

do until oMenuSub.eof 
if intOldTree<>oMenuSub("level") then 
blnNewTree=true 
response.write "])" & vbcrlf 
else 
blnNewTree=false 
end if 
if blnNewTree then 
response.write "addmenu(menu=[""" 
response.write oMenuSub("level") 
response.write """," & vbcrlf 
response.write ",,120,1,"""",style1,,""left"",effect,,,,,,,,,,,," & vbcrlf 
end if 
response.write ",""" & oMenuSub("label") & """,""" 
if oMenuSub("sub") then 
response.write "show-menu=" & oMenuSub("id") 
else 
response.write Application("homePage") & "?" & oMenuSub("link") 
end if 
response.write """,,,1" & vbcrlf 
intOldTree=oMenuSub("level") 
oMenuSub.movenext 
loop 
response.write "])" & vbcrlf 
%> 

これは草案作業モデルですが、問題なく動作しますが、あなたは1つのSQLクエリを使用することによって向上させることができASPマークアップ内にすべての出力を書き込む。

2

はいです。

メニュー定義ファイル(「addmenu」行がすべて入っているJSファイル)を生成するASPページを作成できます。または、より正確には、ASPファイルはそのファイルに入るテキストを生成しますが、そのASPをメインのASPファイルに含めることになります。

しかし、データが頻繁に変更されない場合は、バックグラウンドプログラムでJSファイルを生成してメインページに含めておくと、アプリサーバーの負荷が軽減されますs)。

関連する問題