1

PHP - 게시판 제작 9 - 게시글 검색하기

PHP - 게시판 제작 9 - 게시글 검색하기

노아의 블로그

    목차
반응형

이제 사용자가 원하는 게시글을 검색 할 수 있도록 합시다.

일단 제목 검색 기능만 후딱 구현하죠.

 

select * from board where title like "%????%"

 

이번 쿼리에서는 like를 사용했습니다.

like%문자%는 테이블에서 %안에 포함된 문자열이 있는 데이터들만 출력합니다.

 

만약에 게시물중 제목이

1.php 게시판 제작

2.php 게시판 언제끝나

3.php 공부하기

4.나는 jsp 공부할거야

라는 게시물이 있을때,

select * from board where title like "%php%"; 를 실행하면 

1번,2번,3번 게시물이 출력됩니다.

 

즉 포함된 문자열이 있을시 출력!

 

이제 검색을 만들어보자구요

 

일단 list.php

<?php include "../connect.php"; ?>

<!DOCTYPE html>
<head>

</head>
<body>
	<form action="" method ="post">
		<input type="search" name = "search">
		<input type="submit">
	</form>

</body>

<?php 
$sql = "select * from board";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
        echo "<a href='read.php?bno=" . $row['bno'] . "'>" . $row['title'] . "</a>";
        echo "<br>";
    }

}
?>

 

검색창을 만들어 보았습니다.

 

자. 이제 검색 처리를 해야합니다.

 

검색에는 두가지 요소를 생각해야죠.

1번. 검색을 하지 않았을때 기본 검색

2번. 검색어가 있을때

 

저는 그냥 간단히 if문으로 처리를 해 보겠습니다.

<?php
$search = $_POST['search'];
if($search){$sql = "select * from board where title like '%$search%'";}
else{$sql = "select * from board";}


$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
        echo "<a href='read.php?bno=" . $row['bno'] . "'>" . $row['title'] . "</a>";
        echo "<br>";
    }

}
?>

만약 post로 받은 search가 있으면

포함된것 찾는 쿼리를 만들고 검색어가 없다면 그냥 기본 검색을 하는 쿼리를 제작했습니다.

 

 

검색어가 없을때는 전체 게시물이 출력되구요

 

 

이제 검색어를 입력해볼까요?

저는 hell을 입력 해 보겠습니다.

 

정상적으로 hell이라는 문자열이 포함된 (제목)게시물이 출력되네요!

반응형