ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP项目实战之商品的增删改查

2021-09-18 22:33:13  阅读:176  来源: 互联网

标签:文件 php 数据库 改查 商品 sql 增删 query PHP


文章目录

一.项目思路

1.连接数据库

确保两个服务是打开的,分别是Apache_pn(阿帕奇服务器的服务)、MySQL5_pn(数据库服务)。

接着,输入网址:http://127.0.0.1/phpmyadmin/

显示数据库的登录界面

在这里插入图片描述

进入数据库

在这里插入图片描述

2.新建数据库、数据表…

新建数据库
在这里插入图片描述

新建数据表
在这里插入图片描述
创建字段
在这里插入图片描述
插入值
在这里插入图片描述
最终效果
在这里插入图片描述

3.代码思路

①先写一个商品首页的文件,样式用的是angular.js框架的样式。
在这里插入图片描述

<?php
    require_once "database.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>商品首页</title>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <table class="table">
        <thead>
            <tr>
                <th>商品名称</th>
                <th>商品价格</th>
                <th>商品数量</th>
                <th>商品备注</th>
                <th>操作</th>
            </tr>
        </thead>
       <tbody>
            <?php
                //查询所有数据的sql语句
                $sql = "SELECT * FROM `product`";
                //执行sql语句
                $result = $conn->query($sql);
            ?>
            <?php
                while($row = $result -> fetch_assoc()){
                    // var_dump($row);
            ?>
            <tr>
                <td><?php echo $row["p_name"];?></td>
                <td><?php echo $row["price"];?></td>
                <td><?php echo $row["p_count"];?></td>
                <td><?php echo $row["remark"];?></td>
                <td>
                    <a href="edit.php?id=<?php echo $row['id'];?>">编辑</a>
                    <a href="delete.php?id=<?php echo $row['id']?>">删除</a>
                </td>
            </tr>
            <?php 
                }
            ?>
       </tbody>
    </table>
    <div class="text-center">
        <a href="add.html">添加新商品</a>
    </div>
</body>
</html>

②再写一个连接数据库的文件。

<?php
    //利用面向对象的方法连接数据库
    $conn = new mysqli("localhost","root","123456","product_db");
    //判断
    if($conn->connect_error){
        die("连接失败");
    }
    //转换编码格式
    $conn ->query("set names utf8");
?>

③再写一个删的文件,连接数据库文件,执行删除的sql语句。

<?php
    $id = $_GET["id"];
    require_once "database.php";
    //删除的sql
    $sql="DELETE FROM `product_db`.`product` WHERE `product`.`id` = $id";
    //执行sql
    $conn -> query($sql);

    //回到首页
    header("Location:index.php");
?>

④再写2个添加的文件

<!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>添加新商品</title>
</head>
<body>
    <form action="add.php" method="get">
        <input name="n" type="text" placeholder="商品名称">
        <input name="j" type="text" placeholder="商品价格">
        <input name="s" type="text" placeholder="商品数量">
        <textarea name="b" cols="30" rows="10"></textarea>
        <input type="submit" value="添加">
    </form>
</body>
</html>
<?php
    //名称
    $n=$_GET["n"];
    //价格
    $j=$_GET["j"];
    //数量
    $s=$_GET["s"];
    //备注
    $b=$_GET["b"];

    //连接数据库
    require_once "database.php";

    //插入语句
    $sql = "INSERT INTO `product`(`id`,`p_name`,`price`,`p_count`,`remark`) VALUES(NULL,'$n','$j','$s','$b');";
    //执行插入语句
    $conn->query($sql);

    //回到首页
    header("location:index.php");
?>

⑤再写一个编辑的文件

<?php
    $id = $_GET["id"];

    require_once "database.php";

    //根据id查到当前商品是谁
    $sql = "SELECT * FROM `product` WHERE `id`= $id ";
    //查询
    $result = $conn->query($sql); 

    //得到商品的具体信息
    $res = $result -> fetch_assoc();
    //var_dump($res);
?>
<!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>商品编辑页</title>
</head>
<body>
    <form action="update.php" method="get">
        <input hidden name="i" value="<?php echo $res['id'] ?>" type="text">
        <input name="n" type="text" value="<?php echo $res['p_name'];?>" placeholder="商品名称">
        <input name="j" type="text" value="<?php echo $res['price'];?>"placeholder="商品价格">
        <input name="s" type="text" value="<?php echo $res['p_count'];?>"placeholder="商品数量">
        <textarea name="b" cols="30" rows="10"><?php echo $res['remark'];?></textarea>
        <input type="submit" value="更新商品信息">
    </form>
</body>
</html>

⑥再写一个更新的文件。

<?php
    //id
    $i=$_GET["i"];
    //名称
    $n=$_GET["n"];
    //价格
    $j=$_GET["j"];
    //数量
    $s=$_GET["s"];
    //备注
    $b=$_GET["b"];
    
    require_once "database.php";
    //更新语句
    $sql = "UPDATE `product` SET `p_name` = '$n',`price`='$j',`p_count`='$s',`remark` = '$b' WHERE `product`.`id` = $i;";
    //执行更新语句
    $conn->query($sql);

    //回到首页
    header("location:index.php")
?>

注意事项:要把shop整个项目放在htdocs目录下,不然会出现错误。
在这里插入图片描述

4.文件目录

在这里插入图片描述

二.查询端口号

用cmd命令查询端口号

C:\Users\HP>d:

D:\>cd D:\phpNow\MySQL-5.0.90\bin

D:\phpNow\MySQL-5.0.90\bin>mysql -u root -p

mysql> status  //查看端口号

三.常见错误

1.项目部署问题

错误分析

Fatal error: Class 'mysqli' not found in D:\phpNow\htdocs\shop\database.php on line 3

翻译之后

在D: phpNow\htdocs\shop\database.php第3行中没有找到Class 'mysqli

解决方案

在PHPnow中找到php-apache2handler.ini文件,用记事本打开,去掉;extension=php_mysqli.dll前面的分号。(可以利用记事本的查找功能实现快速查找)

在这里插入图片描述

在搜索框输入文件名,可以快速找到文件。

2.中文变成“ ???”的问题

在这里插入图片描述

解决方案

中文变成“???”的解决方案:在连接接数据库时,我们可以进行转码。

//转换编码格式
$conn ->query("set names utf8");

四.框架网站

https://www.bootcdn.cn/
在这里插入图片描述

在这里插入图片描述

五.源码下载地址

https://download.csdn.net/download/William_fang/23546537

标签:文件,php,数据库,改查,商品,sql,增删,query,PHP
来源: https://blog.csdn.net/William_fang/article/details/120373383

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有