資料庫程式設計 – PHP+MySQL 第 四 章 PHP 語言  上一頁      下一頁

 

 4-3 PHP 迴圈敘述

內容:

  • 4-3-1 PHP 敘述&範例

  • 4-3-2 範例研討:列印中空矩形

  • 4-3-3 範例研討:製作表格

  • 4-3-4 範例研討:製作報價單

4-3-1 PHP 敘述&範例

與一般程式一樣,PHP 迴圈敘述有:

(1) for 迴圈:如for($a=1; $a<=10; $a++) { $sum = $sum + $a;}

(2) while 迴圈:如 while ($a <=10) { $sum = $sum + $a;}

(3) do/while 迴圈:如 do {$sum = $sum + $a}while($a <10);

(4) foreach 迴圈:如 foreach ($arr as $key ) { echo "$arr[$key] <br>";}

(5) continue :繼續敘述句、break:迴圈中斷敘述句。

(A) 程式範例如下Ex4_7.php

迴圈最容顯現出 PHP Engine 的功能,如欲利用 HTML 語言顯示十句『我愛您』,則必須連續寫十句,改用 PHP 迴圈來敘述只要寫一句就可以,要顯示 10 次、100 次都可以,範例如下:

1

2

3

4

5

6

<?php

   echo " <p> PHP 迴圈範例 </p>";

       for($i=0; $i<=10; $i=$i+1) {

           echo "我衷心告訴您:我愛您 <BR>";

   }

?>

(B) 執行結果如下

4-3-2 範例研討 - 列印中空矩形

(A) 網頁功能 – Ex4_8.php 

公司希望製作一個有愛心的 logo,期望顯示如下:

 (B) 製作技巧

這張圖如果僅利用 HTML 來製作可能非常費時,不滿意要更改也很困難,如果用 PHP 就簡單許多了。首先,我們必須到 google 搜尋愛心玫瑰圖形的素材,並將它下載到範例的資料夾內。這張圖寬與高大略由 20 個愛心排列而成,因電腦是一行接一行輸出,則輸出步驟如下:

(1) 輸出 5 行,每行 20 個愛心圖。

(2) 再輸出 5 行,每行先 5 個愛心、再 10 個玫瑰花、最後再 5 個愛心。

(3) 最後再輸出 5 行,每行 20 個愛心圖。

(4) 注意每一個圖形輸出都需指定相同大小(width=20height=20)

我們將上述的步驟寫成程式即可。

(C) 程式範例:

首先需要網路上下載愛心圖片(love.phg)與玫瑰花圖片(flower.png),兩者皆要放在與此程式同一目錄下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

  <?php

       for ($i=1; $i<=5; $i++) {

            for($j=1; $j<=20; $j++) {

                echo "<img src='love.png' width='20' height='20'>";

            }

            echo "<BR>";

       }

       for($i=1; $i<=10; $i++) {

            for($j=1; $j<=5; $j++){

                  echo "<img src='love.png' width='20' height='20'>";

            }

            for($j=1; $j<=10; $j++){

                  echo "<img src='flower.jpg' width='20' height='20'>";

            }

            for($j=1; $j<=5; $j++){

                  echo "<img src='love.png' width='20' height='20'>";

            }

            echo "<BR>";

       }

       for ($i=1; $i<=5; $i++) {

            for($j=1; $j<=20; $j++) {

                echo "<img src='love.png' width='20' height='20'>";

            }

            echo "<BR>";

       }

 ?>

4-3-3 範例研討:製作表格

吾人可以發現利用 HTML 語言建立表格實在很麻煩,需要一行、接著一個欄位順序規劃,如利用 PHP 迴圈可方便許多。

(A) 網頁功能 – Ex4_9.php 

公司期望設計一個通用表格讓各單位使用,規格是:

(1) 10 行、每行 5 個欄位的表格。

(2) 500 pix、每行高度為 30 pix

 (B) 製作技巧

如僅利用 HTML 來製作這張圖可能滿繁複的,不滿意要修改也很難。如利用 PHP 可就容易許多了。首先,先觀察 HTML 製作表格的方法,如下:

<table  wide=”” height=”” border =”線粗”>

    <tr> <td> 欄位_1</td><td> 欄位_2</td></tr>    (備注:第一行)

    <tr> <td> 欄位_1</td><td> 欄位_2</td></tr>    (備注:第二行)

    <tr> <td> 欄位_1</td><td> 欄位_2</td></tr>    (備注:第三行)

    …

</table>

到底需要幾行(<tr> … </tr>)、每行需要多少欄位(<td>  … </td>,這可利用 PHP 迴圈來達成,如此就可以簡化許多,萬一要改變行數或欄位數,只要變更迴圈的參數即可。

(C) 程式範例

1

2

3

4

5

6

7

8

9

10

<?php

    echo " <table width='500' height='120' border='1'>";

       for ($i=1; $i<=10; $i++) {               // 表格有 10

           echo "<tr>";

           for ($j=1; $j<=5; $j++) {         //每行有 5 個欄位

                 echo "<td height='30'></td>";   // 欄位高 30 pix

           }

           echo "</tr>";

        }

?>

(D)程式分析:

(1) 5 行到第 11 for 迴圈是規劃表格的行數。

(2) 7 行到第 9 行,for 迴圈是規劃每行的欄位數。

4-3-4 範例研討:製作報價單

(A) 網頁要求 – Ex4_10.php 

希望將公司報價單格式統一化,製作一個範本公佈在網路上以供同仁參考,期望格式如下圖,請您幫它製作出來。

 (B) 製作技巧

首先分析這張報價單的結構,它是由 1 個表頭與 3 個表格所構成,說明如下:

(1) 表格表頭:表格標頭是(<caption> 很堅固公司報價單 </caption>)

(2) 報價單表頭:是由兩行、每行 4 個欄位所構成。第一行第一個欄位是『客戶名稱:』、第二欄位空白、第三欄位是『報價日期:』、第四欄位空白;第二行也是如此。另外,將此表格的線隱藏 (border=”0”),就看不到表格線了。

(3) 報價單內容:計有 11 行、每行 6 個欄位,只有第一行有輸入文字(項目、品名、、、),其他 10 行都是空白可利用 PHP 的迴圈製作。另外,須規範每行高度、與各個欄位的寬度。

(4) 報價單結尾:只有一行、 2 個欄位,第 1 欄位內容是『總計:』,第 2 欄位是空白,高度與欄位寬度自行調整。

(5) HTML PHP 語言混合:此範例吾人特地將 HTML PHP 語言混合使用,給讀者了解一般網頁製作技巧大多如此。

(C) 程式範例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<html xmlns=”http://www.w3.org/1999/xhtml”>

<body>

<table width=”1000” height=”100” border=”0”>

   <caption>

            <font size=”6”><u><p>很堅固工程公司 報價單</p></u></font>

       </caption>

       <tr height=”50” align=”left”>

             <td>客戶名稱:</td><td width=”400”></td>

             <td>報價日期:</td><td width=”400”></td>

       </tr>

       <tr height=”50” align=”left”>

             <td>客戶地址:</td><td width=”400”></td>

             <td>客戶電話:</td><td width=”400”></td>

       </tr>

</table>

<table width=”1000” border=”1”>

       <tr height=”50” align=”center”>

          <td width=”50”>項目</td>

         <td width=”200”>   </td>

          <td width=”450”>   </td>

          <td width=”100”>   </td>

          <td width=”100”>   </td>

          <td width=”100”>  </td>

       </tr>

    <?php

       for ($i=1; $i<=10; $i++) {

           echo “<tr height=’50’>”;

           for ($j=1; $j<=6; $j++) {

                   echo “<td></td>”;

           }

           echo “</tr>”;

        }

    ?>

</table>

<table width=”1000” border=”1”>

       <tr height=”50” align=”left”>

          <td width=”200”>總計</td>

          <td width=”800”></td>

       </tr>

</font>

</table>

</body>

</html>

 

主講人:粘添壽博士

course_db 關聯圖

 

資料庫程式設計 - PHP+MySQL: