从数据库数据(列表菜单或单选按钮?)实现多个选择的正确方法

时间:2011-02-14 17:47:28

标签: php mysql html

我正在建立一个网站,将在一个大城市展示夜总会狂欢活动和夜间场所。事件可能有数百个。

用户应该能够在网站上添加活动时添加某些详细信息,例如(在活动表中)event_name, event_description, event_date, event_photo_url etc.

我希望用户能够根据兴趣或音乐类型搜索或查找某些活动或场所。 我在MySQL中有一个兴趣表和一个流派表:

兴趣表

interest_id  interest-name  
1            Shoot Pool  
2            Karaoke 
3            Lounge 
4            Live Band
5            Dance
6            Watch Sports 

流派表

genre_id  genre_name   
1         Hip Hop 
2         Soul 
3         Reggae 
4         Pop 
5         Bangra  
6         Rock 
7         House 
8         Country 
9         Gospel 
10        Carribean 
11        Bongo 
12        Genge 
13        Mugithi 
14        Dholuo 
15        Kamba 
16        Classical 
17        Childrens 
18        Latin 
19        Jazz 
20        Musicals 
21        Middle Eastern

我还有2个其他表来链接具有兴趣的类型和事件的事件,即

event_genre table

  event_genre_id              
  event_id               
  genre_id 

和event_interest表

  event_interest_id            
  event_id               
  interest_id 

企业或活动可以有多个兴趣,例如可以在游泳池中观看游戏的俱乐部。音乐类型也是如此。可以在企业或活动中播放各种各样的音乐。 用户可以从流派和兴趣中进行多项选择。 我的问题是,我是否有每个兴趣和类型的下拉列表菜单?我可以为下拉列表菜单和/或单选按钮选择多个选项吗?有没有更好的方法来实现我需要的东西?

2 个答案:

答案 0 :(得分:3)

我会带着一堆复选框。用户将能够检查所有兴趣或他们感兴趣的任何内容。要处理此问题,您只需构建一个已检查值列表,然后将该列表传递给查询以过滤结果。有意义吗?

答案 1 :(得分:1)

你可以做两个列表框。这将允许您在两个简单的控件中选择多个类型和多个兴趣,这将节省房地产,并允许您轻松显示和排序可用的选择......

然后在你的服务器端,你只需要解析这些值来构建你的查询...这可能是最难的部分。

你的值更有可能作为一个数组返回...不确定这一切在php中是如何工作的,但你会将你的项目拆分为数组对象并基本上循环遍历它们。

然后,您可以将AND genre = arItem(x)添加到您的查询中,并将其与兴趣相同。