首页 > 开发 > PHP > 正文

建立动态的WML站点(三)

2024-05-04 23:01:18
字体:
来源:转载
供稿:网友


接着用户必须在下一个文件(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页面了,自己继续实践一下吧。 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表