ME

[PHP] 게시판 검색 기능 구현 본문

웹개발/PHP

[PHP] 게시판 검색 기능 구현

본캐 2023. 1. 1. 23:45

 

 

 

더보기
<?php
include '../db.php';
session_start();
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <title>board</title>
</head>
<body>
    <div><h2>게시판</h2></div>
    <form method="post" action="search.php">
	    <select name="option">
            <option value=title>제목</option>
            <option value=content>내용</option>
            <option value=writer>작성자</option>
	    </select>
	    <input type=text name=keyword id="keyword">
	    <input type=submit value=검색>
    </form>
    <table width=800 border="1">
        <thead>
            <tr align=center>
                <th width=50>번호</th>
                <th>제목</th>
                <th width=100>작성자</th>
                <th width=90>작성일</th>
            </tr>
       </thead>
       
       <?php
            $q = "SELECT * FROM board order by idx DESC";
            $d = mysqli_query($conn, $q);

            while ($row = mysqli_fetch_array($d)) { ?>   
                 <tr>
                    <td> <?=$row['idx']?> </td>
                    <td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>
                    <td> <?=$row['name']?> </td>
                    <td> <?=substr($row['date'],0,10) ?> </td>
                 </tr>       
        <?php } ?>       
    </table>
    <a href="write.php">글쓰기</a>
</body>
</html>

 

 

 

 

list.php (추가된 코드)

// 생략 //

<form method="post" action="search.php">
    <select name="option">
        <option value=title>제목</option>
        <option value=content>내용</option>
        <option value=writer>작성자</option>
    </select>
    <input type=text name="keyword" id="keyword">
    <input type=submit value=검색>
</form>

// 생략 //

 

 

 

 

위 코드를 적용해서 기존에 있던 게시판 페이지에 검색기능을 수행할 폼이 추가 되었다. 

 

 

 

 

 

 

 

 

 

 

더보기
<?php
include '../db.php';
session_start();
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <title>board</title>
</head>
<body>
    <div><h2>게시판</h2></div>
    <form method="post">
	    <select name="option">
            <option value=title>제목</option>
            <option value=memo>내용</option>
            <option value=name>작성자</option>
	    </select>
	    <input type=text name=keyword id="keyword">
	    <input type=submit value=검색>
    </form>
    <table width=800 border="1">
        <thead>
            <tr align=center>
                <th width=50>번호</th>
                <th>제목</th>
                <th width=100>작성자</th>
                <th width=90>작성일</th>
            </tr>
       </thead>
       
       <?php
            $option = $_POST['option'];
            $keyword = $_POST['keyword'];
            
            if($option == 'title'){
                $q1 = "title LIKE '%$keyword%'";
            } else if($option == 'memo'){
                $q2 = "memo LIKE '%$keyword%'";
            } else if($option == 'name'){
                $q3 = "name LIKE '%$keyword%'";
            }
        
            $q = "SELECT * FROM board WHERE ".$q1.$q2.$q3." order by idx DESC";
            $d = mysqli_query($conn, $q);

            while ($row = mysqli_fetch_array($d)) { ?>   
                 <tr>
                    <td> <?=$row['idx']?> </td>
                    <td> <a href="read.php?idx=<?=$row['idx']?>"><?=$row['title']?></a></td>
                    <td> <?=$row['name']?> </td>
                    <td> <?=substr($row['date'],0,10) ?> </td>
                 </tr>       
        <?php } ?>       
    </table>
    <a href="write.php">글쓰기</a>
</body>
</html>

 

 

 

search.php (추가된 코드)

// 생략 //

<form method="post">
    <select name="option">
        <option value=title>제목</option>
        <option value=memo>내용</option>
        <option value=name>작성자</option>
    </select>
    <input type=text name=keyword id="keyword">
    <input type=submit value=검색>
</form>

// 생략 //

 

search.php 에서도 게시판 페이지처럼 기본적인 폼을 구현해주자.

 

 

 

 

// 생략 //

$option = $_POST['option'];
$keyword = $_POST['keyword'];

if($option == 'title'){
    $q1 = "title LIKE '%$keyword%'";
} else if($option == 'memo'){
    $q2 = "memo LIKE '%$keyword%'";
} else if($option == 'name'){
    $q3 = "name LIKE '%$keyword%'";
}

$q = "SELECT * FROM board WHERE ".$q1.$q2.$q3." order by idx DESC";

// 생략 //

 

POST 로 받은 값이 조건에 일치하면

 

조건 값에 따라 맞게 수행하는 코드를 작성했다.

 

 

 

 

 

 

 

게시판 페이지

 

 

제목이 test 인 검색결과

 

 

 

 

 

 

 

Comments