当前位置: 首页 > 图文教程 > 网络编程 > PHP > 建立动态的WML站点(三)

PHP
PHP新手总结的PHP基础知识
php实现gb2312和unicode间编码转换
用php语言实现数据库连接详细代码介绍
详细解析 PHP 向 MySQL 发送数据过程
利用PHP V5开发多任务应用程序
详细讲解PHP中缓存技术的应用
php escapeshellcmd多字节编码漏洞
《PHP设计模式介绍》导言
《PHP设计模式介绍》第一章 编程惯用法
《PHP设计模式介绍》第二章 值对象模式
《PHP设计模式介绍》第三章 工厂模式
《PHP设计模式介绍》第四章 单件模式
《PHP设计模式介绍》第五章 注册模式
《PHP设计模式介绍》第六章 伪对象模式
《PHP设计模式介绍》第七章 策略模式
《PHP设计模式介绍》第八章 迭代器模式
《PHP设计模式介绍》第九章 观测模式
《PHP设计模式介绍》第十章 规范模式
《PHP设计模式介绍》第十一章 代理模式
《PHP设计模式介绍》第十二章 装饰器模式

PHP 中的 建立动态的WML站点(三)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 206 ::
收藏到网摘: n/a

接着用户必须在下一个文件(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页面了,自己继续实践一下吧。