이번에는 웹 사이트에 주소 검색 기능을 추가해보자.
주소 검색 기능은 크게 세 단계로 나누어 진행할 예정이다.
(1) 테스트 DB 구축 및 화면에 결과 출력, (2) DB 정교히 구축 및 CSS 추가 정도로 생각하고 있다.
DB에서 결과를 가져와서 화면에 출력하는 것부터 해보자.
우선 메인 페이지에서 주소 검색 페이지로 향하는 버튼을 넣어준다.
<?php
session_start();
if(isset($_GET['session'])){
session_destroy();
echo "<script>window.location.href='index.html';</script>";
}
else if (isset($_SESSION['id'])){
echo "<h2>Welcome {$_SESSION['id']}!! This is Main Page.</h2>";
echo "<button id = 'addr-btn' onclick = \"location.href = 'address.html'\"}>주소 검색</button>";
echo "<button id = 'signup-btn' onclick = \"location.href = 'board.html'\"}>게시판</button>";
?>
세션 값이 존재하면 Main Page라는 문구를 출력한 후 주소 검색이나 게시판 중에 선택할 수 있는 버튼을 만들어주었다.
따옴표 안에 따옴표가 들어가야 할 때는 하나는 큰 따옴표, 하나는 작은따옴표를 써주곤 했는데, 이번에는 따옴표 안에 따옴표 안에 따옴표를 적어야 해서 \"로 적어주었다.
<body>
<div>
<div>
<form action = "address.php" method = "post">
<input id = "search_addr" name = "addr" type = "text" placeholder="시, 구를 입력해주세요." />
<input type = "submit" value = "주소검색" id = "search_btn" />
</form>
</div>
<div></div>
</div>
</body>
간단하게 form안에 주소 검색하는 칸과 검색 버튼을 만들어주고, post 방식으로 넘겨주었다.
이제 간단한 테스트용 DB를 만들어보자.
mysql> CREATE table `address` (
-> `sigu` varchar(30),
-> PRIMARY KEY(sigu)
-> );
mysql> insert into `address` values ('서울시 송파구');
mysql> insert into `address` values ('서울시 서초구');
mysql> insert into `address` values ('인천시 연수구');
이제 address 테이블에는 3개의 데이터가 있다. 이 데이터를 화면에 출력해보자.
<?php
if(isset($_POST['addr'])){
$addrs = $_POST['addr'];
$conn = mysqli_connect('localhost', 'ID', 'PW', 'DBname');
$sql = "SELECT * FROM address where sigu like '%$addrs%';";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
echo $row['sigu'];
echo "<br />";
}
} else{
echo "<script>alert('주소 없음.')</script>";
}
mysqli_close($conn);
} else{
echo "<script>alert('address 입력해주세요.')</script>";
echo "<script>window.location.href='address.html';</script>";
}
?>
우선 $sql의 SQL Query를 살펴보면, 사용자가 입력한 주소값을 포함되는 데이터는 모두 가져오기 위하여 like와 %를 이용했다.
if문 안에서는 mysqli_num_rows($result)가 0보다 크다면, 즉 Query에 해당하는 Set이 존재한다면, while문을 통해 존재하는 Set들을 가져온다. 그래서 while문 안에서 $row는 첫 번째 set부터 시작해서 마지막 set까지 차례대로 해당된다.
결과적으로 서울시를 검색하면 서울시가 들어가는 두 행 서초구와 송파구를 가져온다.
화면에 출력하는 기능을 만들어주었으니, 다음에는 DB의 개수를 늘리고 CSS를 적용해보자.
'WEB HACKING > 웹 해킹[실습]' 카테고리의 다른 글
Php로 웹 개발하기 : 게시판(1) - Setting & Print List (0) | 2021.11.02 |
---|---|
Php로 웹 개발하기 : 주소 검색(2) (0) | 2021.10.31 |
Php로 웹 개발하기 : MySQL Trigger (0) | 2021.10.25 |
Php로 웹 개발하기 : 식별 - 인증 Case 별 로그인 (0) | 2021.10.23 |
Php로 웹 개발하기 : 회원가입(1) (0) | 2021.10.19 |
댓글