PHP--数据库访问(增、删、改、查)

练习通过数据库查询一个表,操作这个表的增、删、改、查的功能!

一、主页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<table width:100% border="1" cellpadding="0" cellspacing="0">
<tr style="background-color:#CF0">
    <td>代号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>民族</td>
    <td>生日</td>
    <td>操作</td>
</tr>
<?php
    //造链接对象
    $db = new mysqli("localhost","root","517","mydb");
    //判断是否链接成功
    !mysqli_connect_error() or die("链接失败");
    //写sql语句
    $sql = "select * from Info ";
    //执行sql语句
    $result = $db->query($sql);  //返回的$result是一个结果集
    //处理查询结果
    $attr = $result->fetch_all();    /*$result 到这步就是一个对象,可以利用对象里的方法
                                     可以用1.fetch_row(),一行一行的取,取出来的是一个索引数组
                                          2.fecth_all() 取出所有的数据,返回的是一个二维数组
                                          3.fetch_assoc() 一行一行的取 取出的是一个关联数组*/
    for($i=0;$i<count($attr);$i++)
    {
        echo"<tr>";
        $attr[$i];  //取出的数据是一个行的数组
        //因为$attr[$i]就是一个数组,所以需要在遍历这个数组查出数据
        for($j=0;$j<count($attr[$i]);$j++)
        {
            echo"<td>{$attr[$i][$j]}</td>";  //适用于列数比较多的数据循环数据
        }
        /*造操作表里的删除和修改,要在for循坏外面写<td>,因为下面的<tr>是在外层的for循环里的,所以每一行数据都会循环出来删除和修改的a标签.
          为了清楚的知道到底操作的是哪条数据,所以可以用?手写get提交方式(这种方式叫做写一个querystring),传一个主键值来唯一标识这条数据*/
        echo"<td><a href=‘Delete.php?code={$attr[$i][0]}‘>删除</a>&nbsp;<a href=‘Delete.php?code={$attr[$i][0]}‘>删除</a></td>";
        echo"</tr>";
    }

?>
</table>
<!--点击按钮添加数据-->
<br />
<!--添加数据跳转页面也可以用JavaScript,找到这个元素,利用window.open做, 这里用<a>标签做-->
<a href="tianjia.php"><input type="button" value="添加数据"/></a>

</body>
</html>

二、添加数据页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<form action="Add.php" method="post">
    <div>
        代号:<input type="text" name="code"/>     <!--只要提交表单,input里必须有name,因为到处理页面要接收name值-->
    </div>
    <div>
        姓名:<input type="text" name="name"/>
    </div>
    <div>
    <!--添加value值,提交的时候选中哪个,就提交哪个value的值; 注意name要设置成一样的,才会互斥-->
        性别:<input type="radio" name="sex" value="ture" checked="checked"/>男 &nbsp;
            <input type="radio" name="sex" value="false"/>女

    </div>
    <div>
    <!--<select>也是表单元素,所以也要设置name值-->
        民族:
        <select name="nation">
            <?php
            //造链接对象
            $db = new MySQLi("localhost","root","517","mydb");
            //判断是否出错
            !mysqli_connect_error() or die("链接失败");
            //写sql语句
            $sql = "select * from Nation";

            //执行sql语句
            $result = $db->query($sql);
            //处理结果
            $attr  = $result->fetch_all();
            for($i=0;$i<count($attr);$i++)
            {
                echo"<option value=‘{$attr[$i][0]}‘>{$attr[$i][1]}</option>";  //点击提交的时候,传过去的是value值
            }
            ?>

        </select>
    </div>
    <div>
        生日:<input type="text" name="birthday"/>
    </div>
<div>
    <input type="submit" value="确定"/>
    <a href="/LianXi/Untitled-4.php"><input type="button" value="返回"/></a>
</div>
</body>
</html>

三、添加处理页面

<?php
//接收上个页面传过来的name值 送到数据库
$code = $_POST["code"];  //post引号里的值 是从上个页面传过来的name值,用一个变量接收一下后在这个处理页面调用
$name = $_POST["name"];
$sex = $_POST["sex"];
$nation = $_POST["nation"];
$birthday = $_POST["birthday"];
//造链接对象
$db = new MySQLi("localhost","root","517","mydb");
//判断是否出错
!mysqli_connect_error() or die("链接失败");
//写sql语句
$sql = "insert into Info values(‘{$code}‘,‘{$name}‘,{$sex},‘{$nation}‘,‘{$birthday}‘)"; //value值中如果是字符串则需要加单引号,其他的不用加(布尔型,整型,浮点型);$sex是布尔类型的,所以在value值里不用加单引号.

//执行sql语句
$result = $db->query($aql); //因为$result 接收的不是查询语句,所以返回的是ture或者false

if($result)
{
    header("location:tianjia.php");
}
else
{
    echo"添加失败";
}

四、删除页面

<?php
//删除处理页面
$code = $_GET["code"];

//造链接对象
    $db = new mysqli("localhost","root","517","mydb");
    //判断是否链接成功
    !mysqli_connect_error() or die("链接失败");
    //写sql语句
    $sql = "delete from Info where code=‘{$code}‘";
    //执行sql语句
    $result = $db->query($sql);  //返回的$result是一个结果集

if($result)
{
    header("location:Untitled-4.php");
}
else
{
    echo"链接失败!";
}

五、修改页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php
            $code = $_GET["code"]; //用get方式接收到传过来的主键值,用主键值查出数据

            //造链接对象
            $db = new MySQLi("localhost","root","517","mydb");
            //判断是否出错
            !mysqli_connect_error() or die("链接失败");
            //写sql语句
            $sqlxq = "select * from Info where Code=‘{$code}‘";
            //执行sql语句
            $resultxq = $db->query($sqlxq);

            $attrxq = $resultxq->fetch_row();  //因为通过主键值只查出来一条数据,所以用fetch_row()比较方便

?>
<form action="Update.php" method="post">
    <div>
        代号:<input type="text" name="code" readonly="readonly" value="<?php echo $attrxq[0]?>"/>     <!--只要提交表单,input里必须有name,因为到处理页面要接收name值;-->
    </div>
    <div>
        姓名:<input type="text" name="name" value="<?php echo $attrxq[1]?>"/>
    </div>
    <div>
    <!--添加value值,提交的时候选中哪个,就提交哪个value的值; 注意name要设置成一样的,才会互斥-->
        性别:<input type="radio" name="sex" value="ture" <?php  echo $attrxq[2]?"checked=‘checked‘":"" ;?>/>男 &nbsp;
            <input type="radio" name="sex" value="false" <?php  echo $attrxq[2]?"":"checked=‘checked‘" ;?>/>女

    </div>
    <div>
    <!--<select>也是表单元素,所以也要设置name值-->
        民族:
        <select name="nation">
            <?php

            //写sql语句
            $sql = "select * from Nation";

            //执行sql语句
            $result = $db->query($sql);
            //处理结果
            $attr  = $result->fetch_all();
            for($i=0;$i<count($attr);$i++)
            {
                if($attrxq[3]==$attr[$i][0])
                {
                    echo"<option selected=‘selected‘ value=‘{$attr[$i][0]}‘>{$attr[$i][1]}</option>";  //点击提交的时候,传过去的是value值
                }
                else
                {
                    echo"<option value=‘{$attr[$i][0]}‘>{$attr[$i][1]}</option>";
                }
            }
            ?>

        </select>
    </div>
    <div>
        生日:<input type="text" name="birthday" value="<?php echo $attrxq[4]?>" />
    </div>
<div>
    <input type="submit" value="修改"/>
    <a href="/LianXi/Untitled-4.php"><input type="button" value="返回"/></a>
</div>
</body>
</html>

六、修改处理页面

<?php

$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
$nation = $_POST["nation"];
$birthday = $_POST["birthday"];

//造链接对象
$db = new MySQLi("localhost","root","517","mydb");
//判断是否出错
!mysqli_connect_error() or die("链接失败");
//写sql语句
$sql = "update Info set Name=‘{$name}‘,Sex={$sex},Nation=‘{$nation}‘,Birthday=‘{$birthday}‘ where Code=‘{$code}‘"; 

//执行sql语句
$result = $db->query($aql);

if($result)
{
    header("location:Untitled-4.php");
}
else
{
    echo"修改失败";
}

注意事项!!

1.如果运行程序的时候出现错误,显示的是fetch_all()或fetch_row()有错误,表示是sql语句写错了

2.一般做程序的时候,修改页面中的主键值一般是不允许修改的,可以显示,但是最好不要设置成可以修改的,会出现问题;设置成修改的可能导致主键值重复(修改页面中的提示)

3.手写get提交方式的这种做法叫做写一个querystring,问号后面直接跟name;如果写多个,用@符号隔开

4.给文件命名的时候,一般按照驼峰命名法!就是单词首字母大写,例如:XiuGaiChuLi.php

5.做项目的时候,要考虑到界面的友好性,怎么样才能让用户用着更舒服更顺手,尽力去完善

时间: 2024-10-01 01:29:00

PHP--数据库访问(增、删、改、查)的相关文章

数据库的增,删,改,查的操作示例

public class Test extends AndroidTestCase { private shujuku shu; private SQLiteDatabase db; // 测试方法执行前调用 @Override protected void setUp() throws Exception { // TODO Auto-generated method stub   super.setUp(); shu = new shujuku(getContext()); // 拿到数据库

iOS 数据库FMDN 数据库的增 删 改 查 的 的基本操作

FMDB的下载地址 (https://github.com/ccgus/fmdb) 话不多说首先将这个 库加进来,在将加进来,OK  准备工作就绪上代码. #import "DDViewController.h" #import "FMDB.h" @interface DDViewController () { FMDatabase *db; } @end @implementation DDViewController /** *  要先做要有个位置去存放数据库 

数据库的增 删 改 查语句汇总

(select * from xxx  - -查询语句) 一:新建数据库 (xxx表示名称) use XXX - -指向当前所操作的数据库 go create table xxx - -新建表关键字 (  列的名称 数据类型 not null,  列的名称 数据类型 not null,  列的名称 数据类型 not null  (  idenitiy(1,1)- -表示标识,标识种子为1增长为1     )  (  primary key (列名) - -设置主键                

Python---MySQL数据库之四大操作(增 删 改 查)

一.对数据库,表,记录---四大操作(增 删 改 查) 1.操作数据库 (1)对数据库(文件夹):进行增加操作 Create  database  库名; 例:  Create  database  db7 ; 查询库: show  databases; 结果: +-----------------------------+ | Database                   | +----------------------------+ | information_schema | |

ADO.NET 增 删 改 查

ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访问技术的基础 连接数据库基本格式:需要两个类1.数据库连接类 SqlConnection2.数据库操作类 SqlCommand 1.连接数据库写连接字符串,立马就要想到有4点要写完,1.连接哪台服务器,2.连接哪个数据库,3.连接用户名,4.密码string sql = "server=.(服务器i

php基础:数据库的含义和基本操作 增 删 改 查

//数据库是帮我们管理数据的一个软件,我们将数据给他,放进数据库里.他能很稳妥的帮我们管理起来,且效率很高.//php的大部分工作就是  php->连接数据库->写入数据->查出数据->格式化数据->显示出来,//数据库管理数据是以表的形式组成的,多行多列,表头声明好了,一个表创建好了,剩下的就是往里面添加数据 多张表放在一个文件夹里面就形成了库  mysql服务器帮我们管理多个库C:\wamp\bin\mysql\mysql5.6.12\data   数据库中的数据放在这个

数据库基础学习4--表格的 增 删 改 查(简单查询与高级查询)

一.增 C:create 增加,创建,向数据库里面添加数据. insert into Fruit values('K009','苹果',3.0,'高青',90,'') insert into Fruit(Ids,Name,Price,Source,Numbers) values('K010','苹果',3.0,'高青',90) 二.改 U:update修改,从数据库表里面修改数据. update Fruit set Source='烟台' where Ids='K001' 三.删 D:delet

怎样从C#中打开数据库并进行 增 删 改 查 操作

首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登录数据库 Console.WriteLine("请输入用户名:"); //提示客户输入用户名和密码 string name = Console.ReadLine(); Console.WriteLine("请输入密码:"); string pwd = Console.R

oracle 11g 建库 建表 增 删 改 查 约束

一.建库 1.(点击左上角带绿色+号的按钮) 2.(进入这个界面,passowrd为密码.填写完后点击下面一排的Test按钮进行测试,无异常就点击Connect) 二.建表 1-1. create table 表名1( Tid number(4) --primary key 列级约束(主键), Tname varchar(10) --ont null  非空约束,只能定义在列级约束, Tsex varchar2(2)--check (tsex='男'  or  tsex='女') 检查约束, T

Android 增,删,改,查 通讯录中的联系人

一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>