数据访问 之 修改数据 (重要)---2017-04-27

1、修改数据:

需要两张数据库表:zhuce 和 naitonality

需要写三个代码文件:main.php;   update.php;  xiugai.php  (其中前两个是用户可见的)

2、主要分为以下四个步骤:

第一步:写 main.php文件实现以下效果

代码如下:

<body>
<h1>对表的信息进行操作</h1>
<table width="50%" border ="1px" cellpadding="0px" cellspacing="0px">
<tr>
<td>code</td>
<td>name</td>
<td>pwd</td>
<td>sex</td>
<td>birthday</td>
<td>nationality</td>
<td>delete</td>
</tr>

<?php
$db = new MySQLi("localhost","root","123","hw_0408");
$sql = "select * from zhuce";
$result = $db->query($sql);
$arr = $result->fetch_all();
foreach($arr as $v)
{   
    $sex = $v[3]?"男":"女";
   
       //第一种获取民族
        //$sql1 = "select nationality from nationality where mzcode='{$v[5]}'";
        
    //第二种获取民族
      $sql1 = "select nationality from zhuce left join nationality on nationality.mzcode='{$v[5]}'";
        $r1 = $db->query($sql1);
        $a1 = $r1->fetch_row();
    //var_dump($a1);
    
    echo "<tr>
    <td>{$v[0]}</td>
    <td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$sex}</td>
    <td>{$v[4]}</td>
    <td>{$a1[0]}</td>
    <td><a href = 'del.php?code={$v[0]}' onclick="return confirm('确认删除吗?')">delete</a>
    <a href = 'update.php?code={$v[0]}'>update</a>
    </td>
    </tr>";
    
    }
?>
</table>
</body>

第二步:点击修改code=3的信息,跳转到update.php页面

实现效果:有默认值,且默认值为code=3的信息

<body>

<?php
$code = $_GET["code"];
$db = new MySQLi("localhost","root","123","hw_0408");
$sql = "select * from zhuce where code='{$code}'";
$result = $db->query($sql);
$arr = $result->fetch_row();
?>
<h1>数据修改</h1>
<form method="post" action="xiugai.php" >
<div>代码:<input  type="text"  value="<?php echo $arr[0]; ?>"/> </div>
<div>姓名:<input  type="text"  value="<?php echo $arr[1]; ?>"/> </div>
<div>密码:<input  type="text"  value="<?php echo $arr[2]; ?>" /> </div>
<div>性别:<input  type="text"  value="<?php echo $arr[3]; ?>"/> </div>
<div>生日:<input  type="text"  value="<?php echo $arr[4]; ?>" /> </div>
<div>民族:<input  type="text" value="<?php echo $arr[5]; ?>"/> </div>
<input type="submit" value="修改"/>
</form>
</body>

第三步:修改细节!!!!

(1)代码为主键,不应该被用户修改;所以用hidden属性将它隐藏

(2)性别不应让用户输入“男”“女”;-----用单选框

要注意:根据code设定默认值

(3)民族不应该让用户输入代码--------用下拉列表

(4)第二步的代码中input没有name值,会导致xiugai.php文件读取不到数据!!!!!!!!

要注意:根据code设定默认值

效果图:(code=2)

<body>

<?php
$code = $_GET["code"];
$db = new MySQLi("localhost","root","123","hw_0408");
$sql = "select * from zhuce where code='{$code}'";
$result = $db->query($sql);
$arr = $result->fetch_row();
?>
<h1>数据修改</h1>
<form action="xiugai.php" method="post">

//隐藏code
<div><input  type="hidden"  name="code"  value="<?php echo $arr[0]; ?>"/> </div>
<div>姓名:<input  type="text" name="name"   value="<?php echo $arr[1]; ?>"/> </div>
<div>密码:<input  type="text" name="pwd"  value="<?php echo $arr[2]; ?>" /> </div>

//细节二

<div>性别:
男:<input type="radio" name="sex"  value="1"  <?php echo $arr[3]?"checked='checked'":"";?>  />
女:<input type="radio" name="sex"  value="0"  <?php echo $arr[3]?"":"checked='checked'";?> />

</div>

<div>生日:<input  type="text" name="birthday"   value="<?php echo $arr[4]; ?>" /> </div>


//细节三
<div>民族:
<select name="nationality">
<?php
$sql2  = "select * from nationality";
$r2 = $db->query($sql2);
$arr2 = $r2->fetch_all();
foreach($arr2 as $v)
{
    if ($arr[5]==$v[0])    //$arr[3]:该人员的mzcode   $v[0]:即将造的option的mzcode  
    {
        echo "<option value='{$v[0]}' selected='selected'> {$v[1]}</option>";
        }
    else
    {
        echo "<option value='{$v[0]}'> {$v[1]}</option>";
        }
    }

?>

</select>

</div>

<input type="submit" value="修改"/>
</form>
</body>

第四步:写修改页面  xiugai.php

     左 改 右       

代码如下:

<?php
header("content-type:text/html;charset=utf-8");  //输出中文
//取修改后的数据
$code = $_POST["code"];
$name = $_POST["name"];
$pwd = $_POST["pwd"];
$sex = $_POST["sex"];
$birthday = $_POST["birthday"];
$naitonality = $_POST["nationality"];

//将修改后的数据写入数据库,覆盖原来的数据

$db = new MySQLi("localhost","root","123","hw_0408");
$sql = "update zhuce set name='{$name}', pwd='{$pwd}',sex = {$sex},birthday = '{$birthday}',mzcode='{$naitonality}' where code = '{$code}'";
if ($db->query($sql))
{
    header("location:main.php");
    }
else
{
    echo "修改失败!";
    }
?>
原文地址:https://www.cnblogs.com/chenguanai/p/6774088.html