建立动态的WML站点(三)


Posted in PHP onOctober 09, 2006

接着用户必须在下一个文件(index3.wml)中输入。我们要求用户输入科目的名字或者教授的姓。你要留意一下变量在页面之间是怎样传送的。语法看来有点复杂,不过可以让你了解整个过程是怎样通过几个文件来完成的。
<?php  
Header("Content-type: text/vnd.wap.wml");  
header("Cache-Control: no-cache, must-revalidate");  
header("Pragma: no-cache");  
echo ("<?xml version='1.0'?>;");  
>;
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml" >; <WML>
<CARD id=card3 title=Name>
<?php  
echo ("<p>Insert ");  
if (${$choice} == "surname") {  
echo ("professor's surname (or part of it).n");  
} else if (${$choice} == "subject") {  
echo ("the subject (or part of it).n");
} else {  
echo ("Maybe there is some problem.n");  
} echo ("<INPUT name='"${$choice}"' type='"text"'>");  

?>  
<DO type="text" label="Go">
<GO href="query.wml" method="get">
<?php  

echo ("<POSTFIELD value='"$"."$choice".""/' name='"$choice"'>");  

echo ("<POSTFIELD value='"$"."${$choice}".""/' name='"${$choice}"'>");  

?>  
</GO>
</DO>
<P></P>
</CARD>
</WML>

<DO type="text" label="Go">
<GO href="index3.wml#card3" method="get">
<?php  
echo ("<POSTFIELD value='"$"."$choice".""/' name='"$choice"'>");  
echo ("<POSTFIELD value='"$choice"/' name='"choice"'>");  
?>  

</CARD>
</WML>
写查询代码

以下的文件负责处理查询。它的名字是query.wml,我们将更详细地分析它。

<?php  

Header("Content-type: text/vnd.wap.wml");  
printf("<?xml version="1.0"?>n");  
printf("n");  
printf("n");  

// 以下各行是用来为查询授课时间构造SQL语句的  

$consulting_tables =  
"(professors left join teach on (professors.Id = teach.Id), subjects)";  
$consulting_columns =  
"professors.Surname, professors.Name, subjects.Subject , ";  
$consulting_columns .=  
"subjects.Cod_number, professors.Consulting_hour, professors.Consulting_place";  
$consulting_query=  
"subjects.Cod_Subject = teach.Cod_subject ";  

// 以下各行是用来为查询测验时间构造SQL语句的  

$exams_tables= "(exams left join professors ON (exams.Id = professors.Id), subjects)";  
$exams_columns= "subjects.Subject , subjects.Cod_number, professors.Surname, ";  
$exams_columns.= "professors.Name, exams.Date, exams.Time, exams.Room, exams.Test";  
$exams_query= "exams.Cod_Subject = subjects.Cod_Subject ";  

// 以下各行是用来为查询测验时间表的sql语句增加查询限制

if ($exams_data) {  

switch($exams_data) {  
case "subject":  
$exams_query.= " and subjects.Subject like '%$subject%'";  
break;  
case "surname":  
$exams_query.= " and professors.Surname like '%$surname%'";  
break;  
}  
}  

// 以下各行是用来为查询授课时间的sql语句增加查询限制

if ($consulting_data) {  
switch($consulting_data) {  
case "subject":  
$consulting_query  
.= " and subjects.Subject like '%$subject%'";  
break;  
case "surname":  
$consulting_query.= " and professors.Surname like '%$surname%'";  
break;  
}  
}  

// 处理与数据库的连接  

function connect($tables, $data, $condition_passed) {  
//  
// put your password and username in next line  
//  

$db = mysql_pconnect("localhost","***","***");  

// put your database name in next line  

mysql_select_db("lanfranchi_co_uk",$db);  

$sql = "SELECT $data FROM $tables WHERE $condition_passed order by professors.Surname";  
$result = mysql_query($sql,$db);  
return $result;  
}  

// 这个函数产生授课时间的wml代码

function consulting_print($consulting_result) {  
global $file;  
printf("n");  
printf(" <P>Receiving hours  

n");  
while ($myrow = mysql_fetch_row($consulting_result)) {  
printf(" <P>$myrow[0], $myrow[1]</P>n");  
printf(" <P>$myrow[2]</P>n");  
printf(" <P>$myrow[3]</P>n");  
printf(" <P>$myrow[4]</P>n");  
printf(" <P>$myrow[5]</P>n");  
}  
printf("</CARD>n");  
}  

// 这个函数产生测验时间表的wml代码

function print_exams($exams_result) {  
global $file;  
printf("<CARD id='"card1"' title='"hours"'>n");  
printf(" <P>Examinations hours  

n");  
while ($myrow = mysql_fetch_row($exams_result)) {  
printf(" <P>$myrow[2], $myrow[3]</P>n");  
printf(" <P>$myrow[0]</P>n");  
printf(" <P>$myrow[1]]</P>n");  
printf(" <P>$myrow[4], $myrow[5]</P>n");  
printf(" <P>$myrow[7]</P>n");  
printf(" <P>$myrow[6]</P>n");  
}  
printf("</CARD>n");  
}  

// 检查你时候选择授课时间或者测验时间,连接数据库并且调用产生wml代码的函数

if ($consulting_data) {  
$connection_result =  
connect($consulting_tables, $consulting_columns, $consulting_query);  
consulting_print($connection_result);  
}  
if ($exams_data) {  
$connection_result =  
connect($exams_tables, $ exams_columns, $ exams_query);  
print_exams($connection_result);  
}  
printf("</WML>n");  

?>  

好,完成了。你已经建立了首个基于MySQL数据库的PHP/WML页面了,自己继续实践一下吧。 

PHP 相关文章推荐
PHP中调用JAVA
Oct 09 PHP
一段php加密解密的代码
Oct 09 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
PHP开发负载均衡指南
Jul 17 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
PHP中余数、取余的妙用
Jun 29 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
php图片添加文字水印实现代码
Mar 15 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PDO::quote讲解
Jan 29 PHP
php测试kafka项目示例
Feb 06 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 PHP
Session的工作方式
Oct 09 #PHP
用Flash图形化数据(一)
Oct 09 #PHP
PHP中Session的概念
Oct 09 #PHP
虚拟主机中对PHP的特殊设置
Oct 09 #PHP
用Flash图形化数据(二)
Oct 09 #PHP
用php来检测proxy
Oct 09 #PHP
如何将一个表单同时提交到两个地方处理
Oct 09 #PHP
You might like
php将session放入memcached的设置方法
2014/02/14 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
对javascript继承的理解
2016/10/11 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
Python KMeans聚类问题分析
2018/02/23 Python
Python扩展内置类型详解
2018/03/26 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python requests指定出口ip的例子
2019/07/25 Python
python判断无向图环是否存在的示例
2019/11/22 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
python实现文法左递归的消除方法
2020/05/22 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
优秀实习自我鉴定
2013/12/04 职场文书
优良学风班总结材料
2014/02/08 职场文书
南湾猴岛导游词
2015/02/09 职场文书
中学生逃课检讨书
2015/02/17 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python