获取id,连接数据库,把该id的一行数据拿出来
<?php
echo '请在表单中修改!'.'<br>';
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','','stu_info');
mysqli_set_charset($link,'utf8');
$sql = "select * from user where id=$id";
$res = mysqli_query($link,$sql);
$rows = mysqli_fetch_array($res);
var_dump($rows);
?>
复制
第3行:获取到 list.php 传到本页的id
第4-5行:连接数据库
第6行:MySQL语句:获取到该id的一行值
第7行:执行数据库语句
第8行:把该id的值以数组数组的形式给到$rows
第9行:输出测试一下
输出了一个数组,这个数组就是我们点击的那一列的数据,为什么它每个值都有两个呢?因为 mysqli_fetch_array($res) 就是把某一列的数据转化为关联数组和索引数组的混合数组;
如果希望只转为索引数组可以用 mysqli_fetch_row($res )
只转为关联数组用 mysqli_fetch_assoc( )
转换成数组以后我们就可以用 $rows[索引] 获取到MySQL里的数据了,我们输出一下试试
代码:
<?php
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','','stu_info');
mysqli_set_charset($link,'utf8');
$sql = "select * from user where id=$id";
$res = mysqli_query($link,$sql);
$rows = mysqli_fetch_array($res);
for ($i = 0; $i <= 5; $i++)
{
echo $rows[$i].'<br>';
}
?>
复制
为了方便用了个循环,应该能看懂吧
获取到了该列的所有值
在这个页面放一些表单,把获取到的只放到表单的 value 里
<body>
<?php
echo '请在表单中修改!'.'<br>';
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','','stu_info');
mysqli_set_charset($link,'utf8');
$sql = "select * from user where id=$id";
$res = mysqli_query($link,$sql);
$rows = mysqli_fetch_array($res);
?>
<form action="update2.php" method="post">
序号:<input type="text" name="id" value="<?php echo $rows[0]; ?>"><br>
姓名:<input type="text" name="name" value="<?php echo $rows[1]; ?>"><br>
密码:<input type="text" name="password" value="<?php echo $rows[2]; ?>"><br>
性别:<input type="text" name="sex" value="<?php echo $rows[3]; ?>"><br>
爱好:<input type="text" name="hobby" value="<?php echo $rows[4]; ?>"><br>
城市:<input type="text" name="city" value="<?php echo $rows[5]; ?>"><br>
<input type="submit" value="修改" >
</form>
</body>
复制
获取到的数据就放到了表单里
我们再建一个update.php文件把up.php文件的表单参数用 post 方法传给update.php,就像 zhuce.php与zhuce_in.php一样;
update.php文件代码:
<?php
$id = $_POST['id'];
$name = $_POST['name'];
$password = $_POST['password'];
$sex = $_POST['sex'];
$hobby = $_POST['hobby'];
$city = $_POST['city'];
$link = mysqli_connect('localhost','root','','stu_info');
mysqli_set_charset($link,'utf8');
$sql = "update user set name = '$name',password = '$password',sex = '$sex',hobby = '$hobby',city = '$city' where id = $id";
mysqli_query($link,$sql);
?>
复制
sql语句:
$sql = "update user set name = '$name',password = '$password',sex = '$sex',hobby = '$hobby',city = '$city' where id = $id";
$sql语句根据id的值在数据库中更改指定数据;
注意:因为我们是根据id的值来更改内容的,所以id的值不能改变;所以我们的代码需要优化!
你是不是想到了 disabled ?我们试一下在 up.php 序号的 <input> 里加一个disabled
序号:<input type="text" name="id" disabled="disabled" value="<?php echo $rows[0]; ?>"><br>
复制
运行一下:
出错了!这是因为使用disabled后无法再提交被禁用的元素值,所以会报错
Undefined index id
解决方法:把序号的input隐藏掉;然后在php语句中输出序号的值!
还有,就是让update.php 跳转到 list.php;
优化后的代码:
<body>
<?php
echo '请在表单中修改!'.'<br>';
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','','stu_info');
mysqli_set_charset($link,'utf8');
$sql = "select * from user where id=$id";
$res = mysqli_query($link,$sql);
$rows = mysqli_fetch_array($res);
echo '序号:'.$rows[0];
?>
<form action="update2.php" method="post">
<input type="hidden" name="id" value="<?php echo $rows[0]; ?>"><br>
姓名:<input type="text" name="name" value="<?php echo $rows[1]; ?>"><br>
密码:<input type="text" name="password" value="<?php echo $rows[2]; ?>"><br>
性别:<input type="text" name="sex" value="<?php echo $rows[3]; ?>"><br>
爱好:<input type="text" name="hobby" value="<?php echo $rows[4]; ?>"><br>
城市:<input type="text" name="city" value="<?php echo $rows[5]; ?>"><br>
<input type="submit" value="修改" >
</form>
</body>
复制
需改后的图:
这样,就可以在网页中修改MySQL的数据了
成品图:
完成了!
@阿帆fan
相关推荐