建立动态的WML站点(三)
程序员文章站
2022-03-31 12:33:33
接着用户必须在下一个文件(index3.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页面了,自己继续实践一下吧。
<?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页面了,自己继续实践一下吧。
上一篇: 用Flash图形化数据(一)