[Normaltic's 취업반 과제] 게시글 검색

2024. 6. 9. 14:22정보보안 및 해킹/Normaltic's 취업반 과제

get_catagory_list.php

검색 창과 버튼을 추가하고 검색 버튼을 클릭하면 search_board.php의 search_contents 함수를 불러와서 컨텐츠를 다시 불러오도록 하였다.

[생략]

require_once ('search_board.php');

[생략]

<label for="search"> Search : </label>
      <input type="text" name="search" placeholder="" />
      <button type="submit" name="searchcontent"><i class="fa fa-search"></i></button><br><br>
      
      [생략]
      
      if (isset($_POST['searchcontent'])) {
  search_contents($category, $_POST['search']);
  exit();
}

[생략]

search_board.php

카테고리와 검색어를 받아서 where구문으로 카테고리를 넣고, 검색어는 title을 중심으로 해서 like구문으로 앞 뒤로 %를 넣어서 검색어가 어디에 있든지 검색이 가능할 수 있도록 하였다. 게시판이 3개로 나뉘어져있기 때문에 카테고리는 필수로 들어갔다.

<?php

function search_contents($category, $search_word)
{
  $table_name = "category_table";

  $sql_query = "SELECT * FROM $table_name WHERE `category` = '$category' and title like '%" . $search_word . "%'";

  $sql_res = mysqli_query(connect_db(), $sql_query);

  if (mysqli_num_rows($sql_res) > 0) {
    for ($i = 0; $i < mysqli_num_rows($sql_res); $i++) {

      $sql_row = mysqli_fetch_array($sql_res);
      $url = "open_cotents.php";
      $writer = urlencode($sql_row['writer']);
      $writed_date = urlencode($sql_row['writed_date']);
      $title = urlencode($sql_row['title']);

      echo "<a href=$url?writer=" . $writer . "&writed_date=" . $writed_date . "&title=" . $title . ">";
      echo "<strong>" . $sql_row['title'] . "</strong><br>";
      echo "</a>";
      echo $sql_row['writer'] . " / Writed :" . $sql_row['writed_date'] . "<br>";
    }
  }
}

?>