1#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
1#楼 发表于2004-12-10 03:01:08
评分:1
|
|
数据库结构如何????
没有数据库结构,如何写出查询代码???
不过,查询思路是简单的。。。就是到了提交的页面,首先判断
用户有没有选择“按照时间查询”。。如果选择了,则把用户选择的时间接收过来。然后判断用户选择了模式一还是模式二。如果是模式一,则判断三个checkbox用户选择了哪几个(关于如何取得checkbox值。本站有相关文章),然后把用户选择的接收过来。。如果选择了模式二,那么很简单,只需要把那一个select的值取过来即可。
取过来相关信息之后,就可以根据数据库结构,写出sql语句。 |
|
2#楼 |
|
|
回复人:mukden |
注册时间:2004-12-09 |
主题/回复:1/3 |
积分:408 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
2#楼 发表于2004-12-10 03:53:32
评分:×
|
|
语句我写出来了,但是我在提交表里怎么写呢,数据库
CREATE TABLE `ks_date` (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
name VARCHAR(8) NOT NULL ,
store INT(3) NOT NULL ,
danhao INT(7) NOT NULL ,
sku INT(6) NOT NULL ,
bumen CHAR(8) NOT NULL ,
trade_name VARCHAR(255) NOT NULL ,
tsdate varchar(20) NOT NULL default '',
u_name CHAR(8) NOT NULL default '',
u_tel1 CHAR(30) ,
u_tel2 CHAR(30) ,
u_tel3 CHAR(30) ,
address VARCHAR(255) ,
neirong VARCHAR(255) NOT NULL ,
nbchul CHAR(50) ,
chulijg CHAR(50) ,
money CHAR(50) ,
remark CHAR(50) ,
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM;
vir_query.php页面部分代码
<script Language="JavaScript">
<!--
function merge_date(theForm)
{
var sqlstr="SELECT * FROM ks_date WHERE ";
if(theForm.cbdate.checked)
{
var sd,ed;
sd=theForm.syear.value+"-"+theForm.smonth.value+"-"+theForm.sday.value;
ed=theForm.eyear.value+"-"+theForm.emonth.value+"-"+theForm.eday.value;
sqlstr+=(" AND ksdate BETWEEN '"+sd+"' and '"+ed+"'");
}
if(theForm.rbsel[0].checked)
{
if(theForm.cbroom.checked)
{
sqlstr+=(" AND bumen ='"+theForm.selbumen.value+"'");
}
if(theForm.cbname.checked)
{
sqlstr+=(" AND nbchul ='"+theForm.selnbchul.value+"'");
}
if(theForm.cbcourse.checked)
{
sqlstr+=(" AND chulijg ='"+theForm.chulijg.value+"'");
}
theForm.sqlstr2.value=sqlstr;
sqlstr+=" Order By id desc";
}
}
//-->
</script>
<form name="form1" method="post" action="vir_query2.php" onsubmit="return merge_date(this)">
<table border="1" cellspacing="0" cellpadding="0" align="center">
<tr>
<td height="50" colspan="3">
<div align="center"><font size="+3" color="#000099"><i>预约资料条件式查询</i></font></div>
</td>
</tr>
<tr>
<td height="10" colspan="3" bgcolor="#E4D2FF"><font size="2" color="#666666">如有需要时间条件,请先勾选「日期”,并选择开始、结束时间。</font></td>
</tr>
<tr bgcolor="#FFFFEE">
<td height="30" width="80">
<div align="center">
<input type="checkbox" name="cbdate" value="checkbox">
<span class="blue1">日期</span> </div>
</td>
<td colspan="2">
<select name="syear">
<OPTION VALUE=2002 >2002</OPTION><OPTION VALUE=2003 >2003</OPTION><OPTION VALUE=2004 SELECTED >2004</OPTION><OPTION VALUE=2005 >2005</OPTION><OPTION VALUE=2006 >2006</OPTION><OPTION VALUE=2007 >2007</OPTION><OPTION VALUE=2008 >2008</OPTION><OPTION VALUE=2009 >2009</OPTION><OPTION VALUE=2010 >2010</OPTION> </select>
年
<select name="smonth">
<OPTION VALUE=1 >一月</OPTION><OPTION VALUE=2 >二月</OPTION><OPTION VALUE=3 >三月</OPTION><OPTION VALUE=4 >四月</OPTION><OPTION VALUE=5 >五月</OPTION><OPTION VALUE=6 >六月</OPTION><OPTION VALUE=7 >七月</OPTION><OPTION VALUE=8 >八月</OPTION><OPTION VALUE=9 >九月</OPTION><OPTION VALUE=10 >十月</OPTION><OPTION VALUE=11 >十一月</OPTION><OPTION VALUE=12 SELECTED >十二月</OPTION> </select>
<select name="sday">
<OPTION VALUE=1 >1</OPTION><OPTION VALUE=2 >2</OPTION><OPTION VALUE=3 >3</OPTION><OPTION VALUE=4 >4</OPTION><OPTION VALUE=5 >5</OPTION><OPTION VALUE=6 >6</OPTION><OPTION VALUE=7 >7</OPTION><OPTION VALUE=8 >8</OPTION><OPTION VALUE=9 SELECTED >9</OPTION><OPTION VALUE=10 >10</OPTION><OPTION VALUE=11 >11</OPTION><OPTION VALUE=12 >12</OPTION><OPTION VALUE=13 >13</OPTION><OPTION VALUE=14 >14</OPTION><OPTION VALUE=15 >15</OPTION><OPTION VALUE=16 >16</OPTION><OPTION VALUE=17 >17</OPTION><OPTION VALUE=18 >18</OPTION><OPTION VALUE=19 >19</OPTION><OPTION VALUE=20 >20</OPTION><OPTION VALUE=21 >21</OPTION><OPTION VALUE=22 >22</OPTION><OPTION VALUE=23 >23</OPTION><OPTION VALUE=24 >24</OPTION><OPTION VALUE=25 >25</OPTION><OPTION VALUE=26 >26</OPTION><OPTION VALUE=27 >27</OPTION><OPTION VALUE=28 >28</OPTION><OPTION VALUE=29 >29</OPTION><OPTION VALUE=30 >30</OPTION><OPTION VALUE=31 >31</OPTION> </select>
日~
<select name="eyear">
<OPTION VALUE=2002 >2002</OPTION><OPTION VALUE=2003 >2003</OPTION><OPTION VALUE=2004 SELECTED >2004</OPTION><OPTION VALUE=2005 >2005</OPTION><OPTION VALUE=2006 >2006</OPTION><OPTION VALUE=2007 >2007</OPTION><OPTION VALUE=2008 >2008</OPTION><OPTION VALUE=2009 >2009</OPTION><OPTION VALUE=2010 >2010</OPTION> </select>
年
<select name="emonth">
<OPTION VALUE=1 >一月</OPTION><OPTION VALUE=2 >二月</OPTION><OPTION VALUE=3 >三月</OPTION><OPTION VALUE=4 >四月</OPTION><OPTION VALUE=5 >五月</OPTION><OPTION VALUE=6 >六月</OPTION><OPTION VALUE=7 >七月</OPTION><OPTION VALUE=8 >八月</OPTION><OPTION VALUE=9 >九月</OPTION><OPTION VALUE=10 >十月</OPTION><OPTION VALUE=11 >十一月</OPTION><OPTION VALUE=12 SELECTED >十二月</OPTION> </select>
<select name="eday">
<OPTION VALUE=1 >1</OPTION><OPTION VALUE=2 >2</OPTION><OPTION VALUE=3 >3</OPTION><OPTION VALUE=4 >4</OPTION><OPTION VALUE=5 >5</OPTION><OPTION VALUE=6 >6</OPTION><OPTION VALUE=7 >7</OPTION><OPTION VALUE=8 >8</OPTION><OPTION VALUE=9 SELECTED >9</OPTION><OPTION VALUE=10 >10</OPTION><OPTION VALUE=11 >11</OPTION><OPTION VALUE=12 >12</OPTION><OPTION VALUE=13 >13</OPTION><OPTION VALUE=14 >14</OPTION><OPTION VALUE=15 >15</OPTION><OPTION VALUE=16 >16</OPTION><OPTION VALUE=17 >17</OPTION><OPTION VALUE=18 >18</OPTION><OPTION VALUE=19 >19</OPTION><OPTION VALUE=20 >20</OPTION><OPTION VALUE=21 >21</OPTION><OPTION VALUE=22 >22</OPTION><OPTION VALUE=23 >23</OPTION><OPTION VALUE=24 >24</OPTION><OPTION VALUE=25 >25</OPTION><OPTION VALUE=26 >26</OPTION><OPTION VALUE=27 >27</OPTION><OPTION VALUE=28 >28</OPTION><OPTION VALUE=29 >29</OPTION><OPTION VALUE=30 >30</OPTION><OPTION VALUE=31 >31</OPTION> </select>
日</td>
</tr>
<tr>
<td height="10" colspan="3" bgcolor="#E4D2FF"><font size="2" color="#666666">使用mode1,必须确定各条件的相对应关系,否则会找不到查询的结果喔。</font></td>
</tr>
<tr>
<td height="30" bgcolor="#FFFFEE">
<div align="center">
<input type="radio" name="rbsel" value="1" checked>
<span class="blue1">mode1</span> </div>
</td>
<td colspan="2" bgcolor="#FFFFEE" class="calen">(我要自己选择搭配所要查询的条件)</td>
</tr>
<tr>
<td height="30" bgcolor="#F0FEFF"> </td>
<td width="90" bgcolor="#F0FEFF">
<input type="checkbox" name="cbroom" value="checkbox">
<span class="normal2">部门</span></td>
<td width="400" bgcolor="#F0FEFF">
<select name="selroom">
<option value="216">
216 </option>
<option value="60A">
60A </option>
<option value="214">
214 </option>
<option value="215">
215 </option>
</select>
<span class="blue1"></span> </td>
</tr>
<tr>
<td height="30" bgcolor="#F0FFF0"> </td>
<td bgcolor="#F0FFF0">
<input type="checkbox" name="cbname" value="checkbox">
<span class="normal2">内部处理</span></td>
<td bgcolor="#F0FFF0">
<select name="selroom">
<option value="216">
216 </option>
<option value="60A">
60A </option>
<option value="214">
214 </option>
<option value="215">
215 </option>
</select>
<span class="blue1"></span> </td>
</tr>
<tr>
<td height="30" bgcolor="#F0FEFF"> </td>
<td bgcolor="#F0FEFF">
<input type="checkbox" name="cbcourse" value="checkbox">
<span class="normal2">处理结果</span></td>
<td bgcolor="#F0FEFF">
<select name="course1">
<option value='研习如何玩疯狂坦克'>研习如何玩疯狂坦克</option>
<option value='网际网路研讨会'>网际网路研讨会</option>
<option value='写教室预约的php程式'>写教室预约的php程式</option>
</select>
</td>
</tr>
</table>
</form> |
|
3#楼 |
|
|
回复人:mukden |
注册时间:2004-12-09 |
主题/回复:1/3 |
积分:408 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
3#楼 发表于2004-12-10 03:54:11
评分:×
|
|
请问,我的"vir_query2.php"页应该怎么写呢. |
|
4#楼 |
|
|
回复人:mukden |
注册时间:2004-12-09 |
主题/回复:1/3 |
积分:408 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
4#楼 发表于2004-12-10 04:01:00
评分:×
|
|
|
5#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
5#楼 发表于2004-12-15 19:08:20
评分:♂
|
|
这个不难写。。全部代码写出来太长,而且比较费劲。我得去查看每一个表单的名字、属性。。我这里给出一段“伪代码”。。你只要把其中的相应部分换成你的变量即可。。。。
这个程序的稍微复杂一点的地方,就是你得接收几个checkbox和radio的值。然后根据用户的选择,产生一个sql语句,最后执行这个语句。
-----------------------------------------------------------------
vir_query2.php
<?php
接收日期checkbox值
接收mode radio值
接收 教室、申请人、课程的checkbox值
查询语句= "select * from [表名] where"
if(日期选中了){
开始日期=开始年-开始月-开始日
结束日期=结束年-结束月-结束日
查询语句.=" ([日期]>开始日期 and [日期]<结束日期)"
}
if(mode1选中了){
if(教室被选中了){
教室=选择的教室
查询语句.=" and [教室]=教室"
}
if(申请人被选中了){
申请人= 选择的申请人
查询语句.=" and [申请人]=申请人"
}
if(课程被选中了){
课程名=选择的课程
查询语句.=" and [课程名]=课程名"
}
}else{ //如果选择了mode2
课程名=选择的课程名
if(日期被选中了){
查询语句 .= " and [课程名]=课程名"
}else{
查询语句 .= " [课程名]=课程名"
}
}
连接数据库
选择表
执行 查询语句
输出结果
?>
---------------------------------
上面,用[]扩起来的,表示你的表中对应的字段名。其他中文部分,都换成变量名和表达式就可以了。。
注意其中使用的 .= 运算符,不是 = |
|