建立动态的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的面试题集,附我的答案和分析(一)
Nov 19 PHP
PHP技术开发技巧分享
Mar 23 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
php图片加中文水印实现代码分享
Oct 31 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
PHP中session跨子域的三种实现方法
Jul 25 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP常量define和const的区别详解
May 18 PHP
PHP迭代器和生成器用法实例分析
Sep 28 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实现蜘蛛访问日志统计
2013/07/05 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
python3操作mysql数据库的方法
2017/06/23 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
旅游专业职业生涯规划范文
2014/01/13 职场文书
大学运动会通讯稿
2014/01/28 职场文书
西式结婚主持词
2014/03/14 职场文书
国旗下演讲稿
2014/05/08 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
诚信贷款承诺书
2014/05/30 职场文书
门卫岗位职责
2015/02/09 职场文书
大学生学期个人总结
2015/02/12 职场文书
学生个人总结范文
2015/02/15 职场文书
《赵州桥》教学反思
2016/02/17 职场文书