建立動態的WML站點(三)
時間:2022-12-09 15:13:29
來源:網絡
瀏覽:14次
接著用戶必須在下一個文件(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頁面了,自己繼續實踐一下吧。;