建立动态的WML站点(三)

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

(0)

相关推荐

  • 建立动态的WML站点(三)

    接着用户必须在下一个文件(index3.wml)中输入.我们要求用户输入科目的名字或者教授的姓.你要留意一下变量在页面之间是怎样传送的.语法看来有点复杂,不过可以让你了解整个过程是怎样通过几个文件来完成的. <?php  Header("Content-type: text/vnd.wap.wml");  header("Cache-Control: no-cache, must-revalidate");  header("Pragma: no-c

  • 建立动态的WML站点(一)

    支持WAP功能的移动电话越来越多了.因此,你也应该考虑一下建立自己的WML网站了,本文要介绍的是如何建立PHP/WML页面的站点,使用MySQL数据库,可动态更新站点的内容,具体例子是某个学院的教授授课时间和测验时间表.一点也不复杂哦 :-)   在开始之前,你应该准备好以下东东: 1.你已经正确安装好PHP和MySQL,并且有使用两者编程的经验. 2.你有SQL的相关知识 3.你运行的是Apache并且可写.haccess文件:或者你运行IIS并且你可以增加映射(或者你可以让系统管理员帮你的忙

  • 建立动态的WML站点(二)

    写PHP/WML代码 现在我们写首个PHP/WML页面,名字为index.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'?>");  ?

  • JS中动态创建元素的三种方法总结(推荐)

    1.动态创建元素一 document.write() 例如向页面中输出一个 li 标签 <pre class="html" name="code"><span style="font-size:12px;"><script> document.write("<li>123</li>"); </script></span> body标签中就会插入

  • jquery动态加载js三种方法实例

    复制代码 代码如下: <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

  • PHP动态创建Web站点的方法

    PHP有4个用于使用外部函数的函数:include().include_once().require()和require_once(). 为了使用它们,PHP脚本中将包括如下代码行: include_once('arr.php'); require('/path/to/filename.html'); 两种使用外部函数的区别: 使用起来完全一样,只是在出错时会有所不同:include()函数不工作,就会向Web浏览器打印一个讲稿,但是脚本会继续运行,如果require()失败,就会打印一个错误,

  • 在Asp.net用C#建立动态Excel

    在Asp.net中建立本地的Excel表,并由服务器向外传播是容易实现的,而删除掉嵌入的Excel.exe进程是困难的.所以 你不要打开任务管理器 ,看Excel.exe进程相关的东西是否还在内存里面.我在这里提供一个解决方案 ,里面提供了两个方法 : "CreateExcelWorkbook"(说明 建立Excel工作簿) 这个方法 运行一个存储过程 ,返回一个DataReader 并根据DataReader 来生成一个Excel工作簿 ,并保存到文件系统中,创建一个"do

  • 如何建立ASP.NET站点

    其实对于建立ASP.NET站点小编刚开始也是一头雾水,经过网上查找资料进行了整理,下面分享给大家. 1. 建立站点专用用户(新建两个站点专用用户,hebcai.com 隶属于Guests 组,hebcai.com _wpg 则隶属于IIS_WPG(ASP.NET 专用用户). (1)从"我的电脑"的右键菜单中选择"管理",打开"计算机管理",从"本地用户的组"中选择"用户",然后从右侧列表窗口中的右键菜单中

  • 三种动态加载js的jquery实例代码另附去除js方法

    复制代码 代码如下: !-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js");就ok了. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.

  • php 生成WML页面方法详解

    由于静态的WAP页面在很多方面不能满足用户个性化的服务请求,因此通过WAP服务器端语言产生动态的WML页面,具有很广泛的应用价值和很高的商业价值. WAP应用结构非常类似于Internet,一个典型的WAP应用请求是这样的:首先,具有WAP用户代理功能的移动终端(WAP手机等)通过内部运行的微浏览器(Micro Browser)对某一网站以无线方式发送WAP服务请求.该请求先由WAP网关截获,对信息内容进行编码压缩,以减少网络数据流量,同时根据需要将WAP协议转换成HTTP协议,然后将处理后的请

随机推荐