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

PHP
PHP 执行系统外部命令 system() exec() passthru()
最新的php 文件上传模型,支持多文件上传
php 静态页面中显示动态内容
数据库查询记录php 多行多列显示
谈PHP生成静态页面分析 模板+缓存+写文件
PHP 各种排序算法实现代码
PHP nl2br函数 将换行字符转成 <br>
php 分页原理详解
Discuz 模板语句分析及知识技巧
php win下Socket方式发邮件类
怎样去阅读一份php源代码
建站常用13种PHP开源CMS比较
php xml留言板 xml存储数据的简单例子
PHP 开源AJAX框架14种
PHP 替换模板变量实现步骤
PHP has encountered an Access Violation at 7C94BD02解决方法
php 正则匹配函数体
php 文件夹删除、php清除缓存程序
php download.php实现代码 跳转到下载文件(response.redirect)
PHP类(Class)入门教程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 211 ::
收藏到网摘: 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页面了,自己继续实践一下吧。