하얀성 2023. 12. 15. 18:41

구매 후기:3점

(구매 후기를 작성할 수 있는 폼을 만들었다.)

 

about.php

<?php
// 데이터베이스 연결
$conn = mysqli_connect('localhost', 'root', 'apmsetup', 'shop_db');

session_start();

$user_id = $_SESSION['user_id'];

if (!isset($user_id)) {
    header('location:login.php');
}

// 리뷰 제출 처리
if (isset($_POST['nickname']) && isset($_POST['review']) && isset($_POST['rating'])) {
    $nickname = mysqli_real_escape_string($conn, $_POST['nickname']);
    $review = mysqli_real_escape_string($conn, $_POST['review']);
    $rating = mysqli_real_escape_string($conn, $_POST['rating']);

    $query = "INSERT INTO reviews (nickname, review, rating) VALUES ('$nickname', '$review', '$rating')";
    if (mysqli_query($conn, $query)) {
        // 리뷰 저장 성공시 사용자를 리뷰 페이지로 리디렉션
        header('Location: about.php');
    } else {
        // 데이터베이스 오류 처리
        echo "Error: " . mysqli_error($conn);
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>elecch?</title>

   <!-- font awesome cdn link  -->

   <!-- custom css file link  -->
   <link rel="stylesheet" href="css/style.css">
   
</head>
<body>
   
<?php include 'header.php'; ?>

<div class="heading">
   <h3>elecch?</h3>
   <p> <a href="home.php">홈으로 가기</a> </p>
</div>

<section class="about">

   <div class="flex">

      <div class="image">
         <img src="images/about.jpg" alt="">
      </div>

      <div class="content">
         <h3>why choose us?</h3>
         <p>신속하고 신선하게, elecch이 여러분의 문 앞까지 맛있는 라면을 배달합니다. 어디서나, 언제든, elecch과 함께라면 최고의 라면을 집에서 즐길 수 있습니다.</p>
         <p>elecch은 라면을 사랑하는 모든 이들을 위해 마음을 담아 배송합니다. 맛의 만족을 집 앞으로 직접 전달하는 elecch, 라면 배송의 새로운 표준을 제시합니다.</p>
      </div>

   </div>

</section>
<h1 class="title">구매 후기 작성</h1>
<form action="about.php" method="post" class="review-form">
    <div class="box">
        <label for="nickname">닉네임:</label>
        <input type="text" id="nickname" name="nickname" required>
        <label for="review">후기:</label>
        <textarea id="review" name="review" required></textarea>
    </div>
    <div class="form-group">
        <label for="rating">별점:</label>
        <select name="rating" id="rating">
            <option value="1">1 별</option>
            <option value="2">2 별</option>
            <option value="3">3 별</option>
            <option value="4">4 별</option>
            <option value="5">5 별</option>
        </select>
    </div>
    <button type="submit" class="btn">후기 제출</button>
</form>
   


<section class="reviews">

   <h1 class="title">구매 후기</h1>

   <div class="box-container">
      <?php
         $query = "SELECT * FROM reviews ORDER BY created_at DESC";
         $result = mysqli_query($conn, $query);
         while($row = mysqli_fetch_assoc($result)){
            echo '<div class="box">';
            echo '<h3>고객 ' . htmlspecialchars($row['nickname']) . '님</h3>';
            echo '<p>' . htmlspecialchars($row['review']) . '</p>';
            echo '<div class="stars">';
            for($i = 0; $i < $row['rating']; $i++){
               echo '<i class="fas fa-star"></i>';
            }
            echo '</div></div>';
         }
         ?>
   </div>
</section>



<?php include 'footer.php'; ?>

<!-- custom js file link  -->
<script src="js/script.js"></script>

</body>
</html>

- 상품검색 기능: 3점

(불닭으로 검색해서 '불닭' 단어가 들어간 두 라면제품을 찾은 모습이다. 돋보기 아이콘을 통해 검색가능하다.)

 

search_page.php

<?php

$conn = mysqli_connect('localhost','root','apmsetup','shop_db');

session_start();

$user_id = $_SESSION['user_id'];

if(!isset($user_id)){
   header('location:login.php');
};

if(isset($_POST['add_to_cart'])){

   $product_name = $_POST['product_name'];
   $product_price = $_POST['product_price'];
   $product_image = $_POST['product_image'];
   $product_quantity = $_POST['product_quantity'];

   $check_cart_numbers = mysqli_query($conn, "SELECT * FROM `cart` WHERE name = '$product_name' AND user_id = '$user_id'");

   if(mysqli_num_rows($check_cart_numbers) > 0){
      $message[] = '이미 장바구니에 있습니다!';
   }else{
      mysqli_query($conn, "INSERT INTO `cart`(user_id, name, price, quantity, image) VALUES('$user_id', '$product_name', '$product_price', '$product_quantity', '$product_image')");
      $message[] = '상품을 장바구니에 담았습니다!';
   }

};

?>

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>search page</title>

   <!-- font awesome cdn link  -->

   <!-- custom css file link  -->
   <link rel="stylesheet" href="css/style.css">

</head>
<body>
   
<?php include 'header.php'; ?>

<div class="heading">
   <h3>라면 검색</h3>
   <p> <a href="home.php">홈으로 가기</a> </p>
</div>

<section class="search-form">
   <form action="" method="post">
      <input type="text" name="search" placeholder="검색할 상품을 입력하세요" class="box">
      <input type="submit" name="submit" value="검색" class="btn">
   </form>
</section>

<section class="products" style="padding-top: 0;">

   <div class="box-container">
   <?php
      if(isset($_POST['submit'])){
         $search_item = $_POST['search'];
         $select_products = mysqli_query($conn, "SELECT * FROM `products` WHERE name LIKE '%{$search_item}%'");
         if(mysqli_num_rows($select_products) > 0){
         while($fetch_product = mysqli_fetch_assoc($select_products)){
   ?>
   <form action="" method="post" class="box">
      <img src="photo/<?php echo $fetch_product['image']; ?>" alt="" class="image">
      <div class="name"><?php echo $fetch_product['name']; ?></div>
      <div class="price">최저<?php echo $fetch_product['price']; ?>원 + 10포인트</div>
      <input type="number"  class="qty" name="product_quantity" min="1" value="1">
      <input type="hidden" name="product_name" value="<?php echo $fetch_product['name']; ?>">
      <input type="hidden" name="product_price" value="<?php echo $fetch_product['price']; ?>">
      <input type="hidden" name="product_image" value="<?php echo $fetch_product['image']; ?>">
      <input type="submit" class="btn" value="장바구니 담기" name="add_to_cart">
   </form>
   <?php
            }
         }else{
            echo '<p class="empty">결과를 찾을 수 없습니다.</p>';
         }
      }else{
         echo '<p class="empty">검색을 시도해보세요!</p>';
      }
   ?>
   </div>
 

</section>


<?php include 'footer.php'; ?>

<!-- custom js file link  -->
<script src="js/script.js"></script>

</body>
</html>

 


css는 너무 길어서 생략하겠습니다.

 

admin_script.js

let navbar = document.querySelector('.header .navbar');
let accountBox = document.querySelector('.header .account-box');

document.querySelector('#menu-btn').onclick = () =>{
   navbar.classList.toggle('active');
   accountBox.classList.remove('active');
}

document.querySelector('#user-btn').onclick = () =>{
   accountBox.classList.toggle('active');
   navbar.classList.remove('active');
}

window.onscroll = () =>{
   navbar.classList.remove('active');
   accountBox.classList.remove('active');
}

document.querySelector('#close-update').onclick = () =>{
   document.querySelector('.edit-product-form').style.display = 'none';
   window.location.href = 'admin_products.php';
}

 

script.js

let userBox = document.querySelector('.header .header-2 .user-box');

document.querySelector('#user-btn').onclick = () =>{
   userBox.classList.toggle('active');
   navbar.classList.remove('active');
}

let navbar = document.querySelector('.header .header-2 .navbar');

document.querySelector('#menu-btn').onclick = () =>{
   navbar.classList.toggle('active');
   userBox.classList.remove('active');
}

window.onscroll = () =>{
   userBox.classList.remove('active');
   navbar.classList.remove('active');

   if(window.scrollY > 60){
      document.querySelector('.header .header-2').classList.add('active');
   }else{
      document.querySelector('.header .header-2').classList.remove('active');
   }
}