Skip to main content Link Search Menu Expand Document (external link) Copy Copied

  1. 검색, 삭제 구현
    1. 01 index수정
    2. 02 검색
    3. 03-삭제

관련링크

🔗php_setcookie


검색, 삭제 구현

01 index수정

index.php 에 input 요소를 추가하여 글검색과 글삭제 interface를 구현한다

index.php

...
while($row = mysqli_fetch_array($result)){
    $list = $list."<li>{$row['number']}: <a href=\"view.php?number={$row['number']}\">{$row['name']}</a></li>";           
}
echo $list;
?>
</ul>
<hr>
<p><a href="write.php">글쓰기</a></p>
<hr>
...

<!-- 아래부터 추가 -->
<h2>글 검색</h2>
<form action="search_result.php" method="post">
    <h3>검색할 키워드를 입력하세요.</h3>
    <p>
        <label for="search">키워드:</label>
        <input type="text" id="search" name="bdKey">
    </p>
    <input type="submit" value="검색">
</form>
<hr>
<h2>글 삭제</h2>
<form action="delete.php" method="post">
    <h3>삭제할 메시지 번호를 입력하세요.</h3>
    <p>
        <label for="msgdel">번호:</label>
        <input type="text" id="msgdel" name="delnum">
    </p>
    <input type="submit" value="삭제">

02 검색

  1. index.php 를 다른 이름으로 저장 search_result.php
  2. 내용수정
//키워드를 저장할 변수 생성
//post 방식으로 전달된 boardKey 의 값을  user_key 변수에 저장
$user_bdkey=$_POST['bdKey'];
//free_board 테이블에서 조건(where)과 같은 데이터 조회 
//LIKE 는 부분적으로 일치하는 칼럼을 찾을때 사용 
//php 의 % 는 * 와 같다
//변수 bdkey 를 포함하는 문자열이 조건
$sql = "SELECT * FROM free_board WHERE message LIKE '%$bdKey%'";

//...중략
echo $list;
//조회후 db를 닫는다
mysqli_close($conn);

📢전체코드
<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>망고네 자유 게시판</title    $conn = mysqli_connect("localhost", "root", "", "mango_board");
>
</head>

<body>
  <h1>자유 게시판</h1>
  <h2>검색결과</h2>
  <ul>
    <?php
    $conn = mysqli_connect("localhost", "root", "", "mango_board");

    if (!$conn) {
      echo 'db에 연결하지 못했습니다.' . mysqli_connect_error();
    } else {
      echo 'db에 접속했습니다!!!';
    }
    //키워드를 저장할 변수 생성
    //post 방식으로 전달된 boardKey 의 값을  user_bdkey 변수에 저장
    $user_bdkey=$_POST['bdKey'];
    //free_board 테이블에서 조건(where)과 같은 데이터 조회 
    //LIKE 는 부분적으로 일치하는 칼럼을 찾을때 사용 
    //php 의 % 는 * 와 같다
    //변수 bdkey 를 포함하는 문자열이 조건
    $sql = "SELECT * FROM free_board WHERE message LIKE '%$user_bdkey%'";

    $result = mysqli_query($conn, $sql);

    $list = '';

    while ($row = mysqli_fetch_array($result)) {

      $list = $list . "<li>{$row['number']}: <a href=\"view.php?number={$row['number']}\">{$row['name']}</a></li>";
    }
    echo $list;
    //조회후 db를 닫는다
    mysqli_close($conn);
    ?>
  </ul>
  <hr />
  <p><a href="write.php">글쓰기</a></p>
  <hr />
</body>

</html>

결과:


03-삭제

  1. index.php 를 다른 이름으로 저장 ->delet.php

delete.php

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>망고네 자유 게시판</title>
</head>

<body>
  <h1>자유 게시판</h1>
  <h2>삭제결과</h2>

  <?php
  $conn = mysqli_connect("localhost", "root", "", "mango_board");

  if (!$conn) {
    echo 'db에 연결하지 못했습니다.' . mysqli_connect_error();
  } else {
    echo 'db에 접속했습니다!!!';
  }
  $num = $_POST['delnum'];


  //삭제
  $sqlDEL = "DELETE FROM free_board WHERE number = $num";
  mysqli_query($conn, $sqlDEL);


  echo $num . '번째 데이터가 삭제되었습니다.';
  mysqli_close($conn);
  ?>

  <p><a href="index.php">메인화면으로 돌아가기</a></p>

</html>

실행