使用php和MySQL制作产品上传产品的展示以及的购物车与产品结算管页面的设计+源码下载 cid1192
Warning: Undefined property: stdClass::$maxbutton id="5" in /www/wwwroot/code.5g-o.com/wp-content/plugins/kama-clic-counter/class.KCCounter.php on line 733
<?php @include 'config.php'; if(isset($_POST['add_product'])){ $p_name = $_POST['p_name']; $p_price = $_POST['p_price']; $p_image = $_FILES['p_image']['name']; $p_image_tmp_name = $_FILES['p_image']['tmp_name']; $p_image_folder = 'uploaded_img/'.$p_image; $insert_query = mysqli_query($conn, "INSERT INTO `products`(name, price, image) VALUES('$p_name', '$p_price', '$p_image')") or die('query failed'); if($insert_query){ move_uploaded_file($p_image_tmp_name, $p_image_folder); $message[] = 'product add succesfully'; }else{ $message[] = 'could not add the product'; } }; if(isset($_GET['delete'])){ $delete_id = $_GET['delete']; $delete_query = mysqli_query($conn, "DELETE FROM `products` WHERE id = $delete_id ") or die('query failed'); if($delete_query){ header('location:admin.php'); $message[] = 'product has been deleted'; }else{ header('location:admin.php'); $message[] = 'product could not be deleted'; }; }; if(isset($_POST['update_product'])){ $update_p_id = $_POST['update_p_id']; $update_p_name = $_POST['update_p_name']; $update_p_price = $_POST['update_p_price']; $update_p_image = $_FILES['update_p_image']['name']; $update_p_image_tmp_name = $_FILES['update_p_image']['tmp_name']; $update_p_image_folder = 'uploaded_img/'.$update_p_image; $update_query = mysqli_query($conn, "UPDATE `products` SET name = '$update_p_name', price = '$update_p_price', image = '$update_p_image' WHERE id = '$update_p_id'"); if($update_query){ move_uploaded_file($update_p_image_tmp_name, $update_p_image_folder); $message[] = 'product updated succesfully'; header('location:admin.php'); }else{ $message[] = 'product could not be updated'; header('location:admin.php'); } } ?> <!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>admin panel</title> <!-- font awesome cdn link --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> <!-- custom css file link --> <link rel="stylesheet" href="css/style.css"> </head> <body> <?php if(isset($message)){ foreach($message as $message){ echo '<div class="message"><span>'.$message.'</span> <i class="fas fa-times" onclick="this.parentElement.style.display = `none`;"></i> </div>'; }; }; ?> <?php include 'header.php'; ?> <div class="container"> <section> <form action="" method="post" class="add-product-form" enctype="multipart/form-data"> <h3>add a new product</h3> <input type="text" name="p_name" placeholder="enter the product name" class="box" required> <input type="number" name="p_price" min="0" placeholder="enter the product price" class="box" required> <input type="file" name="p_image" accept="image/png, image/jpg, image/jpeg" class="box" required> <input type="submit" value="add the product" name="add_product" class="btn"> </form> </section> <section class="display-product-table"> <table> <thead> <th>product image</th> <th>product name</th> <th>product price</th> <th>action</th> </thead> <tbody> <?php $select_products = mysqli_query($conn, "SELECT * FROM `products`"); if(mysqli_num_rows($select_products) > 0){ while($row = mysqli_fetch_assoc($select_products)){ ?> <tr> <td><img src="uploaded_img/<?php echo $row['image']; ?>" height="100" alt=""></td> <td><?php echo $row['name']; ?></td> <td>$<?php echo $row['price']; ?>/-</td> <td> <a href="admin.php?delete=<?php echo $row['id']; ?>" class="delete-btn" onclick="return confirm('are your sure you want to delete this?');"> <i class="fas fa-trash"></i> delete </a> <a href="admin.php?edit=<?php echo $row['id']; ?>" class="option-btn"> <i class="fas fa-edit"></i> update </a> </td> </tr> <?php }; }else{ echo "<div class='empty'>no product added</div>"; }; ?> </tbody> </table> </section> <section class="edit-form-container"> <?php if(isset($_GET['edit'])){ $edit_id = $_GET['edit']; $edit_query = mysqli_query($conn, "SELECT * FROM `products` WHERE id = $edit_id"); if(mysqli_num_rows($edit_query) > 0){ while($fetch_edit = mysqli_fetch_assoc($edit_query)){ ?> <form action="" method="post" enctype="multipart/form-data"> <img src="uploaded_img/<?php echo $fetch_edit['image']; ?>" height="200" alt=""> <input type="hidden" name="update_p_id" value="<?php echo $fetch_edit['id']; ?>"> <input type="text" class="box" required name="update_p_name" value="<?php echo $fetch_edit['name']; ?>"> <input type="number" min="0" class="box" required name="update_p_price" value="<?php echo $fetch_edit['price']; ?>"> <input type="file" class="box" required name="update_p_image" accept="image/png, image/jpg, image/jpeg"> <input type="submit" value="update the prodcut" name="update_product" class="btn"> <input type="reset" value="cancel" id="close-edit" class="option-btn"> </form> <?php }; }; echo "<script>document.querySelector('.edit-form-container').style.display = 'flex';</script>"; }; ?> </section> </div> <!-- custom js file link --> <script src="js/script.js"></script> </body> </html>
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600&display=swap'); :root{ --blue:#2980b9; --red:tomato; --orange:orange; --black:#333; --white:#fff; --bg-color:#eee; --dark-bg:rgba(0,0,0,.7); --box-shadow:0 .5rem 1rem rgba(0,0,0,.1); --border:.1rem solid #999; } *{ font-family: 'Poppins', sans-serif; margin:0; padding:0; box-sizing: border-box; outline: none; border:none; text-decoration: none; text-transform: capitalize; } html{ font-size: 62.5%; overflow-x: hidden; } .container{ max-width: 1200px; margin:0 auto; /* padding-bottom: 5rem; */ } section{ padding:2rem; } .heading{ text-align: center; font-size: 3.5rem; text-transform: uppercase; color:var(--black); margin-bottom: 2rem; } .btn, .option-btn, .delete-btn{ display: block; width: 100%; text-align: center; background-color: var(--blue); color:var(--white); font-size: 1.7rem; padding:1.2rem 3rem; border-radius: .5rem; cursor: pointer; margin-top: 1rem; } .btn:hover, .option-btn:hover, .delete-btn:hover{ background-color: var(--black); } .option-btn i, .delete-btn i{ padding-right: .5rem; } .option-btn{ background-color: var(--orange); } .delete-btn{ margin-top: 0; background-color: var(--red); } .message{ background-color: var(--blue); position: sticky; top:0; left:0; z-index: 10000; border-radius: .5rem; background-color: var(--white); padding:1.5rem 2rem; margin:0 auto; max-width: 1200px; display: flex; align-items: center; justify-content: space-between; gap:1.5rem; } .message span{ font-size: 2rem; color:var(--black); } .message i{ font-size: 2.5rem; color:var(--black); cursor: pointer; } .message i:hover{ color:var(--red); } .header{ background-color: var(--blue); position: sticky; top:0; left:0; z-index: 1000; } .header .flex{ display: flex; align-items: center; padding:1.5rem 2rem; max-width: 1200px; margin:0 auto; } .header .flex .logo{ margin-right: auto; font-size: 2.5rem; color:var(--white); } .header .flex .navbar a{ margin-left: 2rem; font-size: 2rem; color:var(--white); } .header .flex .navbar a:hover{ color:yellow; } .header .flex .cart{ margin-left: 2rem; font-size: 2rem; color:var(--white); } .header .flex .cart:hover{ color:yellow; } .header .flex .cart span{ padding:.1rem .5rem; border-radius: .5rem; background-color: var(--white); color:var(--blue); font-size: 2rem; } #menu-btn{ margin-left: 2rem; font-size: 3rem; cursor: pointer; color:var(--white); display: none; } .add-product-form{ max-width: 50rem; background-color: var(--bg-color); border-radius: .5rem; padding:2rem; margin:0 auto; margin-top: 2rem; } .add-product-form h3{ font-size: 2.5rem; margin-bottom: 1rem; color:var(--black); text-transform: uppercase; text-align: center; } .add-product-form .box{ text-transform: none; padding:1.2rem 1.4rem; font-size: 1.7rem; color:var(--black); border-radius: .5rem; background-color: var(--white); margin:1rem 0; width: 100%; } .display-product-table table{ width: 100%; text-align: center; } .display-product-table table thead th{ padding:1.5rem; font-size: 2rem; background-color: var(--black); color:var(--white); } .display-product-table table td{ padding:1.5rem; font-size: 2rem; color:var(--black); } .display-product-table table td:first-child{ padding:0; } .display-product-table table tr:nth-child(even){ background-color: var(--bg-color); } .display-product-table .empty{ margin-bottom: 2rem; text-align: center; background-color: var(--bg-color); color:var(--black); font-size: 2rem; padding:1.5rem; } .edit-form-container{ position: fixed; top:0; left:0; z-index: 1100; background-color: var(--dark-bg); padding:2rem; display: none; align-items: center; justify-content: center; min-height: 100vh; width: 100%; } .edit-form-container form{ width: 50rem; border-radius: .5rem; background-color: var(--white); text-align: center; padding:2rem; } .edit-form-container form .box{ width: 100%; background-color: var(--bg-color); border-radius: .5rem; margin:1rem 0; font-size: 1.7rem; color:var(--black); padding:1.2rem 1.4rem; text-transform: none; } .products .box-container{ display: grid; grid-template-columns: repeat(auto-fit, 35rem); gap:1.5rem; justify-content: center; } .products .box-container .box{ text-align: center; padding:2rem; box-shadow: var(--box-shadow); border:var(--border); border-radius: .5rem; } .products .box-container .box img{ height: 25rem; } .products .box-container .box h3{ margin:1rem 0; font-size: 2.5rem; color:var(--black); } .products .box-container .box .price{ font-size: 2.5rem; color:var(--black); } .shopping-cart table{ text-align: center; width: 100%; } .shopping-cart table thead th{ padding:1.5rem; font-size: 2rem; color:var(--white); background-color: var(--black); } .shopping-cart table tr td{ border-bottom: var(--border); padding:1.5rem; font-size: 2rem; color:var(--black); } .shopping-cart table input[type="number"]{ border: var(--border); padding:1rem 2rem; font-size: 2rem; color:var(--black); width: 10rem; } .shopping-cart table input[type="submit"]{ padding:.5rem 1.5rem; cursor: pointer; font-size: 2rem; background-color: var(--orange); color:var(--white); } .shopping-cart table input[type="submit"]:hover{ background-color: var(--black); } .shopping-cart table .table-bottom{ background-color: var(--bg-color); } .shopping-cart .checkout-btn{ text-align: center; margin-top: 1rem; } .shopping-cart .checkout-btn a{ display: inline-block; width: auto; } .shopping-cart .checkout-btn a.disabled{ pointer-events: none; opacity: .5; user-select: none; background-color: var(--red); } .checkout-form form{ padding:2rem; border-radius: .5rem; background-color: var(--bg-color); } .checkout-form form .flex{ display: flex; flex-wrap: wrap; gap:1.5rem; } .checkout-form form .flex .inputBox{ flex:1 1 40rem; } .checkout-form form .flex .inputBox span{ font-size: 2rem; color:var(--black); } .checkout-form form .flex .inputBox input, .checkout-form form .flex .inputBox select{ width: 100%; background-color: var(--white); font-size: 1.7rem; color:var(--black); border-radius: .5rem; margin:1rem 0; padding:1.2rem 1.4rem; text-transform: none; border:var(--border); } .display-order{ max-width: 50rem; background-color: var(--white); border-radius: .5rem; text-align: center; padding:1.5rem; margin:0 auto; margin-bottom: 2rem; box-shadow: var(--box-shadow); border:var(--border); } .display-order span{ display: inline-block; border-radius: .5rem; background-color: var(--bg-color); padding:.5rem 1.5rem; font-size: 2rem; color:var(--black); margin:.5rem; } .display-order span.grand-total{ width: 100%; background-color: var(--red); color:var(--white); padding:1rem; margin-top: 1rem; } .order-message-container{ position: fixed; top:0; left:0; height: 100vh; overflow-y: scroll; overflow-x: hidden; padding:2rem; display: flex; align-items: center; justify-content: center; z-index: 1100; background-color: var(--dark-bg); width: 100%; } .order-message-container::-webkit-scrollbar{ width: 1rem; } .order-message-container::-webkit-scrollbar-track{ background-color: var(--dark-bg); } .order-message-container::-webkit-scrollbar-thumb{ background-color: var(--blue); } .order-message-container .message-container{ width: 50rem; background-color: var(--white); border-radius: .5rem; padding:2rem; text-align: center; } .order-message-container .message-container h3{ font-size: 2.5rem; color:var(--black); } .order-message-container .message-container .order-detail{ background-color: var(--bg-color); border-radius: .5rem; padding:1rem; margin:1rem 0; } .order-message-container .message-container .order-detail span{ background-color: var(--white); border-radius: .5rem; color:var(--black); font-size: 2rem; display: inline-block; padding:1rem 1.5rem; margin:1rem; } .order-message-container .message-container .order-detail span.total{ display: block; background: var(--red); color:var(--white); } .order-message-container .message-container .customer-details{ margin:1.5rem 0; } .order-message-container .message-container .customer-details p{ padding:1rem 0; font-size: 2rem; color:var(--black); } .order-message-container .message-container .customer-details p span{ color:var(--blue); padding:0 .5rem; text-transform: none; } /* media queries */ @media (max-width:1200px){ .shopping-cart{ overflow-x: scroll; } .shopping-cart table{ width: 120rem; } .shopping-cart .heading{ text-align: left; } .shopping-cart .checkout-btn{ text-align: left; } } @media (max-width:991px){ html{ font-size: 55%; } } @media (max-width:768px){ #menu-btn{ display: inline-block; transition: .2s linear; } #menu-btn.fa-times{ transform: rotate(180deg); } .header .flex .navbar{ position: absolute; top:99%; left:0; right:0; background-color: var(--blue); clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); transition: .2s linear; } .header .flex .navbar.active{ clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } .header .flex .navbar a{ margin:2rem; display: block; text-align: center; font-size: 2.5rem; } .display-product-table{ overflow-x: scroll; } .display-product-table table{ width: 90rem; } } @media (max-width:450px){ html{ font-size: 50%; } .heading{ font-size: 3rem; } .products .box-container{ grid-template-columns: 1fr; } }
js
let menu = document.querySelector('#menu-btn'); let navbar = document.querySelector('.header .navbar'); menu.onclick = () =>{ menu.classList.toggle('fa-times'); navbar.classList.toggle('active'); }; window.onscroll = () =>{ menu.classList.remove('fa-times'); navbar.classList.remove('active'); }; document.querySelector('#close-edit').onclick = () =>{ document.querySelector('.edit-form-container').style.display = 'none'; window.location.href = 'admin.php'; };
此程序为php运行程序,在此不方便做演示,源码结合视频更容易解读
一键获取本网站前端代码设计的所有源码
获取资源构建和完善自己的源码库
源码可以在本地直接演示
同时研究和体验 如何将一些具体的想法的实现过程
源码可以直接嫁接到自己的网站里复用
稍作修改成为自己的作品