建立动态的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中PDO的错误处理
Sep 04 PHP
初品cakephp 入门基础
Feb 16 PHP
php全角字符转换为半角函数
Feb 07 PHP
PHP面向对象教程之自定义类
Jun 10 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
php实现的错误处理封装类实例
Jun 20 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP PDOStatement::rowCount讲解
Feb 01 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 PHP
PHP的imageTtfText()函数深入详解
Mar 03 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
图书管理程序(三)
2006/10/09 PHP
使用PHP静态变量当缓存的方法
2013/11/13 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
JavaScript中的some()方法使用详解
2015/06/09 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JS实现合并json对象的方法
2017/10/10 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
django 实现简单的插入视频
2020/04/07 Python
Python中内建模块collections如何使用
2020/05/27 Python
python如何查看网页代码
2020/06/07 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
一夜的工作教学反思
2014/02/08 职场文书
班主任寄语大全
2014/04/04 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
营销计划书
2015/01/17 职场文书
英语感谢信范文
2015/01/20 职场文书
导游词之张家界
2019/10/31 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
python实现简单的名片管理系统
2021/04/26 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android