-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinsert.php
169 lines (156 loc) · 8.21 KB
/
insert.php
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!-- อ้างถึงไฟล์ config.php ที่ใช้ตั้งค่าฐานข้อมูล -->
<?php include('config.php') ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spatial GIS</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Kanit:wght@200;400&display=swap" rel="stylesheet">
<style>
*{
font-family: "Kanit", sans-serif;
}
.container{
width: 50%;
}
</style>
</head>
<body>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">PM2.5 (2008-2017)</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" aria-current="page" href="index.php">แผนที่โลก</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="insert.php">เพิ่มข้อมูล</a>
</li>
<li class="nav-item">
<a class="nav-link" href="searchC.php">PM 2.5 ในแต่ละปี</a>
</li>
<li class="nav-item">
<a class="nav-link" href="searchYearColor.php">คนที่ได้รับผลกระทบ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="AllCityofCountry.php">รายชื่อเมือง</a>
</li>
<li class="nav-item">
<a class="nav-link" href="colorShowPM25.php">PM 2.5 ตามสี</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container mt-3">
<h1>INSERT DATA</h1>
<!-- ส่วน Form Insert ข้อมูลเข้า table AirPollution -->
<form method="POST" action="">
<div class="mb-3">
<label class="form-label" for="">Country: </label>
<input class="form-control" type="text" name="country" id="">
</div>
<div class="mb-3">
<label class="form-label" for="">City: </label>
<input class="form-control" type="text" name="city" id="">
</div>
<div class="mb-3">
<label class="form-label" for="">Year: </label>
<input class="form-control" type="number" name="year" id="" step="0.01">
</div>
<div class="mb-3">
<label class="form-label" for="">PM2.5: </label>
<input class="form-control" type="number" name="pm25" id="" step="0.01">
</div>
<div class="mb-3">
<label class="form-label" for="">Latitude: </label>
<input class="form-control" type="number" name="latitude" id="" step="0.01">
</div>
<div class="mb-3">
<label class="form-label" for="">Longtitude: </label>
<input class="form-control" type="number" name="longtitude" id="" step="0.01">
</div>
<div class="mb-3">
<label class="form-label" for="">Polulation: </label>
<input class="form-control" type="number" name="population" id="" step="0.01">
</div>
<div class="mb-3">
<label class="form-label" for="">wbinc16_text: </label>
<input class="form-control" type="text" name="wbinc" id="">
</div>
<div class="mb-3">
<label class="form-label" for="">Region: </label>
<input class="form-control" type="text" name="region" id="">
</div>
<div class="mb-3">
<label class="form-label" for="">conc_pm25 (ช่วงค่า PM2.5 EX: 20-15): </label>
<input class="form-control" type="text" name="conc" id="">
</div>
<div class="mb-3">
<label class="form-label" for="">color_pm25: </label>
<input class="form-control" type="text" name="color" id="">
</div>
<div class="mb-3">
<input class="btn btn-primary"type="submit" value="Insert" name="submit">
</div>
</form>
</div>
<!-- โค้ด php logic ของการ insert ข้อมูลลง Table AirPollutionPM25 -->
<?php
// เช็คว่าถ้ามีการกดปุ่ม submit ให้ทำคำสั่งต่อไปนี้
if (isset($_POST['submit'])) {
// รับค่าตัวแปรมาจากฟอร์ม
$country = $_POST['country'];
$city = $_POST['city'];
$year = floatval($_POST['year']);
$pm25 = floatval($_POST['pm25']);
$latitude =floatval($_POST['latitude']);
$longtitude = floatval($_POST['longtitude']);
$population = floatval($_POST['population']);
$region = $_POST['region'];
$wbinc = $_POST['wbinc'];
$conc = $_POST['conc'];
$color = $_POST['color'];
// รันคำสั่ง SQL เพื่อ insert ข้อมูล
$sql = "INSERT INTO AirPollutionPM25 (country, city, year, pm25, latitude, longtitude, population, region, wbinc16_text, conc_pm25, color_pm25)
VALUES (:country, :city, :year, :pm25, :latitude, :longtitude, :population, :region, :wbinc, :conc, :color)";
$query = $dbconn->prepare($sql);
// Bind Parameter เพราะว่าเราจะไม่ใส่ค่าที่รับมาจากฟอร์มเข้าไปใน query ตรงๆ เพื่อป้องกัน SQL Injection
$query->bindParam(':country', $country); //Bind ตัวแปร $country เข้าไปยัง :country แล้วจึงเอา :country ไปใส่ใน query
$query->bindParam(':city', $city); //Bind ตัวแปร $city เข้าไปยัง :city แล้วจึงเอา :city ไปใส่ใน query
$query->bindParam(':year', $year);
$query->bindParam(':pm25', $pm25);
$query->bindParam(':latitude', $latitude);
$query->bindParam(':longtitude', $longtitude);
$query->bindParam(':population', $population);
$query->bindParam(':region', $region);
$query->bindParam(':wbinc', $wbinc);
$query->bindParam(':conc', $conc);
$query->bindParam(':color', $color);
$result = $query->execute();
if ($result) {
// อัพเดท Column Geom ทีหลังด้วยค่า lat, long และ SRID เป็น 4326
$sql2 = "update AirPollutionPM25 set Geom = geometry::Point(latitude, longtitude, 4326)";
$query2 = $dbconn->prepare($sql2);
$query2->execute();
echo "<script>alert('เพิ่มข้อมูลสำเร็จ!')</script>";
} else {
echo "<script>alert('มีบางอย่างผิดพลาด (เพิ่มข้อมูลไม่สำเร็จ)')</script>";
}
}
?>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
</body>
</html>