0%

[技能檢定]題組三 步驟5 預建資料

由於題組三需要的資料表欄位都不少,如果按部就班的把新增功能做好再去做列表及其它功能的話,會花太多時間在新增資料上,因此根據題組提供的參考資料,我們可以先行手動在資料表中放入資料,這樣可以加快解題的速度,並可更快的驗證各個類別的功能是否運作正確

任意建立一個暫時的文字檔案,利用 phpmyadmin 的新增資料功能,可以預覽SQL語法,然後填上對應的資料,再複製多筆後貼回 phpmyadminsql 區,即可快速完成預建資料的工作。

預建預告片海報資料

1
2
3
4
5
6
7
8
9
10
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A01.jpg', '預告片01', '1', '1', '1');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A02.jpg', '預告片02', '2', '1', '2');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A03.jpg', '預告片03', '3', '1', '3');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A04.jpg', '預告片04', '4', '1', '1');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A05.jpg', '預告片05', '5', '1', '2');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A06.jpg', '預告片06', '6', '1', '3');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A07.jpg', '預告片07', '7', '1', '1');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A08.jpg', '預告片08', '8', '1', '2');
INSERT INTO `posters` (`id`, `img`, `name`, `rank`, `sh`, `ani`) VALUES (NULL, '03A09.jpg', '預告片09', '9', '1', '3');

預建院線片資料

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
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`) 
VALUES (NULL, '院線片01', '1', '120', '2023-07-29', '發行商01', '導演01', '03B01v.mp4', '03B01.png', '院線片01簡介', '1', '1');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片02', '2', '120', '2023-07-30', '發行商02', '導演02', '03B02v.mp4', '03B02.png', '院線片01簡介', '1', '2');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片03', '3', '120', '2023-07-31', '發行商03', '導演03', '03B03v.mp4', '03B03.png', '院線片01簡介', '1', '3');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片04', '4', '120', '2023-08-01', '發行商04', '導演04', '03B04v.mp4', '03B04.png', '院線片01簡介', '1', '4');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片05', '1', '120', '2023-08-02', '發行商05', '導演05', '03B05v.mp4', '03B05.png', '院線片01簡介', '1', '5');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片06', '2', '120', '2023-07-29', '發行商06', '導演06', '03B06v.mp4', '03B06.png', '院線片01簡介', '1', '6');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片07', '3', '120', '2023-07-30', '發行商07', '導演07', '03B07v.mp4', '03B07.png', '院線片01簡介', '1', '7');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片08', '4', '120', '2023-07-31', '發行商08', '導演08', '03B08v.mp4', '03B08.png', '院線片01簡介', '1', '8');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片09', '1', '120', '2023-08-01', '發行商09', '導演09', '03B09v.mp4', '03B09.png', '院線片01簡介', '1', '9');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片10', '2', '120', '2023-08-02', '發行商10', '導演10', '03B10v.mp4', '03B10.png', '院線片01簡介', '1', '10');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片11', '3', '120', '2023-07-30', '發行商11', '導演11', '03B11v.mp4', '03B11.png', '院線片01簡介', '1', '11');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片12', '4', '120', '2023-07-31', '發行商12', '導演12', '03B12v.mp4', '03B12.png', '院線片01簡介', '1', '12');
INSERT INTO `movies` (`id`, `name`, `level`, `length`, `ondate`, `publish`, `director`, `trailer`, `poster`, `intro`, `sh`, `rank`)
VALUES (NULL, '院線片13', '1', '120', '2023-08-01', '發行商13', '導演13', '03B13v.mp4', '03B13.png', '院線片01簡介', '1', '13');

預建訂單資料

訂票管理的預建資料要分兩步驟來進行,主要是座位的資料我們是採用陣列來儲存的,我們需要使用 serialize() 這個函式來將陣列轉化為字串,才能存入資料表

  1. 先建立新增資料的SQL語法字串,最後一個座位欄位先不填資料

    1
    2
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) 
    VALUES (NULL, '202309110001', '院線片01', '2023-09-10', '14:00~16:00', '1', '');
  2. 利用迴圈來產生序列化後的陣列字串,並將上方的SQL字串代入

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for($i=0;$i<9;$i++){
    //建立一個序列化的陣列字串
    $seats=serialize([$i*2,$i*2+1]);

    //sql字串中可以代入變數來增加sql語法的變化
    $sql="INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`)
    VALUES (NULL, '20230911000{$i}', '院線片0{$i}', '2023-09-10', '14:00~16:00', '2', '{$seats}');";
    echo $sql;
    echo "<br>";
    }
  3. 在頁面上執行上方的迴圈,可以得到一組sql語法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110000', '院線片00', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:0;i:1;i:1;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110001', '院線片01', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:2;i:1;i:3;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110002', '院線片02', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:4;i:1;i:5;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110003', '院線片03', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:6;i:1;i:7;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110004', '院線片04', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:8;i:1;i:9;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110005', '院線片05', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:10;i:1;i:11;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110006', '院線片06', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:12;i:1;i:13;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110007', '院線片07', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:14;i:1;i:15;}');
    INSERT INTO `orders` (`id`, `no`, `movie`, `date`, `session`, `qt`, `seats`) VALUES (NULL, '202309110008', '院線片08', '2023-09-10', '14:00~16:00', '2', 'a:2:{i:0;i:16;i:1;i:17;}');
  4. 將產生的sql語法代入資料表即可,日期或片名的部份可以自己再手動略作調整。