:::

12. 兩個資料表的結合

一、 將班級資料做成選單

  1. 語法:
  2. select `class_sn`, `subject`, `class_name`, `teacher` FROM `tncomu_class` WHERE `access`='1' and `seme`='現在的學期' order by  `subject`
  3. 問題一:「現在的學期」該怎麼抓呢?
  4. 做成選單:
  5. $opt="<select name='class_sn'>";
    while(list($class_sn , $subject, $class_name, $ teacher) = mysql_fetch_row($result)){
      $selected=($default_class_sn==$class_sn)?"selected":"";
      $opt.="<option value='{$class_sn}' $selected> {$class_name} </option>";
    }
    $opt.="</select>";

二、 取得「現在的學期」

  1. 學期:991、992、1001、1002、1011、1012,即「民國年+學期」
  2. 如何抓到民國年?民國年=西元年-1911
  3. 如何抓到西元年?date("Y")
  4. 如何抓到學期?第1學期=「今年3月8月」;第2學期=「今年9月到隔年2月」
  5. 如何抓到月?date("n")
  6. if($月<=2){
      $seme=去年第2學期;
    }elseif($月>=3 and $月<=8){
      $seme=今年第1學期;
    }else{
      $seme=今年第2學期;
    }
  7. date()完整用法:http://www.php.net/manual/zh/function.date.php

三、 如何一次讀取兩個資料表

  1. 文章表(tncomu_article)中有個欄位class_sn對應到班級表(tncomu_class)中的class_sn,如何讀出文章時順便取出班級名稱?
  2. 語法:
  3. select  a.* , b.`class_name`
    from `tncomu_article` as a  left join `tncomu_class` as b
    on a.`class_sn`=b.`class_sn`
    where a.seme='本學期' and a.`enable`='1'
  4. 「left join」代表以左邊為主,順便到右邊撈撈看有無指定的資料。
  5. 「right join」代表以右邊為主,順便到左邊撈撈看有無指定的資料。
  6. 「join」代表兩邊都要同時有資料,否則該筆資料不會出現。

:::

搜尋


書籍目錄

展開 | 闔起

線上使用者

26人線上 (7人在瀏覽線上書籍)

會員: 3

訪客: 23

ancen_goo, wenyongfuo_goo, tad,

更多…