号码百事通 院线通的定座位的功能。。。。
求:1:数据库的设计方案
2:java的功能的实现。。。
谢谢~~
6 个解决方案
#1
先说说你自己的思路~~ 没有免费的午餐
#2
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了
至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了
提交的时候就和处理普通checkbox一样了
至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了
#3
座位的多少不固定,位置也不固定,而且座位有可以分为几种,已售出,情侣座,维修中 等等~~
#4
那这个字段长度就弄得大一点嘛。
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了
这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了
这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用
#5
靠谱的
#6
我的方案是:
数据库:
CREATE TABLE `yxt_seat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`description` varchar(100) DEFAULT NULL COMMENT '述描',
`seat_position` varchar(10) DEFAULT NULL COMMENT '置位',
`seat_rows` int(11) DEFAULT '0' COMMENT '第二排',
`seat_cols` int(11) DEFAULT '0' COMMENT '第二列',
`types` int(11) DEFAULT '0' COMMENT '类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=241 DEFAULT CHARSET=gbk;
代码:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@page import="com.yxt.dbconn.Dbconn"%>
<%
String[][] list = new String[11][11];
String[][][] list2 = new String[11][11][2];
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sql = null;
int rows=0;
int cols=0;
//初始化
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
list[i][j] = String.valueOf(i)+String.valueOf(j);
}
}
conn = Dbconn.getConection();
try {
sql = "select * from yxt_seat ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
rows = rs.getInt("seat_rows");
cols = rs.getInt("seat_cols");
list2[rows][cols][0]=rs.getString("seat_position");
list2[rows][cols][1]=rs.getString("types");//1:普通座位,2:已售出,3:您已选的座位,4:情侣双人卡位,5:正在维修
}
}catch (Exception ex) {
ex.printStackTrace();
System.out.println("\nException: ");
} finally {
try { if (rs!=null){rs.close();} } catch (Exception e) { }
try { pst.close(); } catch (Exception e) { }
try { conn.close(); } catch (Exception e) { }
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><link rel="stylesheet" type="text/css" href="css/style.css"></head>
<body>
<table>
<%for(int i=1;i<=10;i++){%>
<tr>
<%for(int j=1;j<=10;j++){%>
<td>
<% if(list[i][j].equals(list2[i][j][0]) &&list2[i][j][0] !=null){ %>
<%if("1".equals(list2[i][j][1])){ %>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/free.gif" /></a>
<%}else if("2".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/sale.gif" /></a>
<%}else if("3".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/lock.gif" /></a>
<%}else if("4".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/love.gif" /></a>
<%}else if("5".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/fix.gif" /></a>
<%}%>
<%} %>
</td>
<%}%>
</tr>
<%} %>
</table>
</body>
</html>
#1
先说说你自己的思路~~ 没有免费的午餐
#2
每个座位图片下面隐藏一个checkbox,选中value为1,未选中value为0
提交的时候就和处理普通checkbox一样了
至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了
提交的时候就和处理普通checkbox一样了
至于数据库设计,你可以做一个字段。
有多少少个座位,这个字符串就多少位。
因为没选的座位是0,选的座位是1,
全未定座的时候就是0000000000000000..........
全部定座的时候就是1111111111111111..........
每次提交后,编辑页面收集来的checkbox,然后、拼接字符串直接更新DB就行了
#3
座位的多少不固定,位置也不固定,而且座位有可以分为几种,已售出,情侣座,维修中 等等~~
#4
那这个字段长度就弄得大一点嘛。
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了
这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用
一个剧场200个座位够多了吧?
varchar200也不是什么特别的事情。
对于已出售,维修中等等,那你就自己标识。
例如已出售2,维修中3,情侣座a,A,b,B什么的标识
你不会弄个3P的情侣座吧?那大小写就不够用了,得另外设计了
这样checkbox的value就不是0,1了,你需要在初期标识的时候给checkbox制定好value。
当然你可能得加个字段标明哪个位置属于什么种类的座位,在初期标识的时候设置value用
#5
靠谱的
#6
我的方案是:
数据库:
CREATE TABLE `yxt_seat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`description` varchar(100) DEFAULT NULL COMMENT '述描',
`seat_position` varchar(10) DEFAULT NULL COMMENT '置位',
`seat_rows` int(11) DEFAULT '0' COMMENT '第二排',
`seat_cols` int(11) DEFAULT '0' COMMENT '第二列',
`types` int(11) DEFAULT '0' COMMENT '类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=241 DEFAULT CHARSET=gbk;
代码:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@page import="com.yxt.dbconn.Dbconn"%>
<%
String[][] list = new String[11][11];
String[][][] list2 = new String[11][11][2];
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sql = null;
int rows=0;
int cols=0;
//初始化
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
list[i][j] = String.valueOf(i)+String.valueOf(j);
}
}
conn = Dbconn.getConection();
try {
sql = "select * from yxt_seat ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
rows = rs.getInt("seat_rows");
cols = rs.getInt("seat_cols");
list2[rows][cols][0]=rs.getString("seat_position");
list2[rows][cols][1]=rs.getString("types");//1:普通座位,2:已售出,3:您已选的座位,4:情侣双人卡位,5:正在维修
}
}catch (Exception ex) {
ex.printStackTrace();
System.out.println("\nException: ");
} finally {
try { if (rs!=null){rs.close();} } catch (Exception e) { }
try { pst.close(); } catch (Exception e) { }
try { conn.close(); } catch (Exception e) { }
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><link rel="stylesheet" type="text/css" href="css/style.css"></head>
<body>
<table>
<%for(int i=1;i<=10;i++){%>
<tr>
<%for(int j=1;j<=10;j++){%>
<td>
<% if(list[i][j].equals(list2[i][j][0]) &&list2[i][j][0] !=null){ %>
<%if("1".equals(list2[i][j][1])){ %>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/free.gif" /></a>
<%}else if("2".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/sale.gif" /></a>
<%}else if("3".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/lock.gif" /></a>
<%}else if("4".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/love.gif" /></a>
<%}else if("5".equals(list2[i][j][1])){%>
<a href="#" title="<%out.println("第 "+i+" 第 "+j+" 列");%>"><img src="images/fix.gif" /></a>
<%}%>
<%} %>
</td>
<%}%>
</tr>
<%} %>
</table>
</body>
</html>