WEB开发网
开发学院WEB开发PHP 建立动态的WML站点(三) 阅读

建立动态的WML站点(三)

 2001-04-13 16:34:00 来源:WEB开发网   
核心提示:接着用户必须在下一个文件(index3.wml)中输入,我们要求用户输入科目的名字或者教授的姓,建立动态的WML站点(三),你要留意一下变量在页面之间是怎样传送的,语法看来有点复杂,完成了,你已经建立了首个基于MySQL数据库的PHP/WML页面了,不过可以让你了解整个过程是怎样通过几个文件来完成的, <?php
接着用户必须在下一个文件(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页面了,自己继续实践一下吧。 

Tags:建立 动态 WML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接