建立动态的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 相关文章推荐
操作Oracle的php类
Oct 09 PHP
一个更简单的无限级分类菜单代码
Jan 16 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
php 定义404页面的实现代码
Nov 19 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 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采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python深入学习之上下文管理器
2014/08/31 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
为什么python比较流行
2020/06/19 Python
python自动生成证件号的方法示例
2021/01/14 Python
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
文职个人求职信范文
2013/09/23 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
校长四风对照检查材料
2014/09/27 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
Go语言并发编程 sync.Once
2021/10/16 Golang