建立动态的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获取淘宝分类id示例
Jan 16 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
php实现mysql事务处理的方法
Dec 25 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
Python判断文本中消息重复次数的方法
2016/04/27 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
Django实现发送邮件功能
2019/07/18 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
python通过cython加密代码
2020/12/11 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
卫校护理专业毕业生求职信
2013/11/26 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
执行力心得体会
2013/12/31 职场文书
质量标语大全
2014/06/12 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
单位委托函范文
2015/01/29 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python