10.30 开课一个月零二十六天 (PHP数据库修改)
1.先做一个修改页面

<body>
<!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页面的效果非常相似,直接把增加页面的代码复制过来-->

<?php //先嵌入php代码查询数据库
$code = $_GET["c"];//取到点击修改时传过来的c的值
$db = new MySQLi("localhost","root","666","text1");//直接把下面的造连接对象拿到上面,一个页面造一个就可以。
//写sql语句,下面有$sql了,这里就写$info。
$sinfo = "select * from info where code='{$code}'";//根据主键值查的,只能查到一条数据。
$rinfo = $db->query($sinfo);
$ainfo = $rinfo->fetch_row();//取到数组 ?>

<form action="xiugaichuli.php" method="post"><!--表单提交到xiugaichuli.php页面。-->
<div><input type="hidden" name="code" value="<?php echo $ainfo[0]; ?>" /></div><!--代号的默认的value的值显示为要更改的那条数据的代号的值,要输出才可以,不输出就为空。主键一般是不允许修改的,可以给它加上属性readonly="readonly"。不能用disabled=disabled,因为设定这个属性后表单无法提交。如果主键值是自增长列或者其它没有意义的列,可以直接隐藏,直接type=hidden,虽然隐藏掉了,但是还可以提交-->
<div>姓名:<input type="text" name="name" value="<?php echo $ainfo[1]; ?>" /></div><!--原理同代号-->
<!--性别和民族无法直接给定值,需要根据值来选定哪一个--> <!--性别是波尔型数据,要么0要么1.php里面的代码的作用是取出$info里面的代码,判断性别是true还是flase,是true的话就输出属性checked="checked",是flase就输出空-->
<div>性别:
<input type="radio" name="sex" value="1" <?php echo $ainfo[2]?"checked = 'checked'":"" ?> />男
<input type="radio" name="sex" value="0" <?php echo $ainfo[2]?"":"checked = 'checked'" ?> />女
</div> <!--民族是下拉列表,下拉列表选中是用属性selected=selected,下拉选项是用foreach遍历出来的,在输出之前可以判断要修改的人的代号是不是等于要输出的这一项的代号-->
<div>民族:
<select name="nation">

<?php
//造连接对象 $sql = "select * from nation";
$result = $db->query($sql);
$attr = $result->fetch_all(); foreach($attr as $v)//判断要修改的人的代号是不是等于要输出的这一项的代号
{
if($v[0]==$ainfo[3])
{
echo "<option selected='selected' value='$v[0]'>{$v[1]}</option>";//相等就输出一个selected='selected'的选项
}
else
{
echo "<option value='$v[0]'>{$v[1]}</option>";//不相等就输出一个正常的选项
}
}
?>

</select>
</div>
<div>生日:<input type="text" name="birthday" value="<?php echo $ainfo[4]; ?>" /></div><!--原理同代号--> <div><input type="submit" value="修改" /></div> </form>
</body>

2.xiugaichuli.php页面

<?php
$code = $_POST["code"];//取出提交的5个值
$name = $_POST["name"];
$sex = $_POST["sex"];
$nation = $_POST["nation"];
$birthday = $_POST["birthday"];
//造连接对象
$db = new MySQLi("localhost","root","666","text1"); $sql = "update info set name='{$name}',sex={$sex},nation='{$nation}',birthday='{$birthday}' where code='{$code}'";//修改的时候无论修改了几个,全部都要修改成现在输入的。 $db->query($sql); header("location:main.php");

10.30 开课一个月零二十六天 (PHP数据库修改)的更多相关文章
- 10.23 开课一个月零十九天 (PHP数组)
<?php $s = "he8llo5wor6ld"; $s = preg_replace("/\d/","#",$s); //按照正 ...
- 10.14 (上午)开课一个月零十天 (PHP环境搭建)
一.修改APACHE的监听端口 2 1.在界面中选apache,弹出隐藏菜单选项,打开配置文件httpd.conf; 2.找到Listen 80 和 ServerName localhost:80; ...
- 10.21 (上午) 开课一个月零十七天 (PHP基础语法)
<?php $a = 6; echo $a; //注释语法 /* 多行注释 */ //输出语法 echo "hello"; echo "world",&q ...
- 大数据笔记(二十)——NoSQL数据库之MemCached
一.为什么要把数据存入内存? 1.原因:快2.常见的内存数据库 (*)MemCached:看成Redis的前身,严格来说Memcached的不能叫数据库,原因:不支持持久化 (*)Redis:内存数据 ...
- 二十九:数据库之SQLAlchemy连接数据库
手写SQL复用性不高,SQL越复杂越容易出bug,而且容易引起SQL注入,所以现在Ibanez使用orm框架将数据库映射为数据模型,这是使用SQLAlchemy 准备工作,安装SQLAlchemy和P ...
- Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法
但是当我们在试图对数据库中的数据进行备份或者将sql文件导入到我们的数据库时可能就会碰到编码的问题,在windows下安装mysql时我们可以在安装的时候就选择好整个数据库的编码方式(通常设置成utf ...
- 第三百二十六天 how can I 坚持
今天元宵节啊,晚上去蓝色港湾看了看灯光节,快冻死了,人倒是挺多. 其他没啥了. 还有晚上吃了几个元宵. 好像冻感冒了,有点头晕. 睡觉.
- 第二百二十六天 how can I 坚持
今天弟弟生日,只是简单的说了句生日快乐,幸亏看了下日历,要不又忘了. 在家待了一天. 明天还想去爬山,八大处太远了,该去哪呢. 不想在家待着. 日复一日,啊,年复一年啊.想想好可怕,人生,太快.该如何 ...
- 第六百二十六天 how cna I 坚持
年代数竟然算错了,哎,好笨啊.2000年得有100代人了,好傻啊. 1到100,哎. 早上好像想通了呢,哎.又不打算去拉萨了. 到底..哎.睡觉.
随机推荐
- Oracle 处理坏块
本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率 ...
- Vue2学习笔记:html属性
1.使用 <!DOCTYPE html> <html> <head> <title></title> <meta charset=&q ...
- mvc 下json超过限制,上传excel大小限制
json超过限制 解决方案1:config中添加节点 控制序列化长度 <webServices> <jsonSerialization maxJsonLength="10 ...
- Linux 系统磁盘挂载信息文件
设置文件系统挂载信息的文件(etc/fstab),使得开机能够自动挂载磁盘分区 文件系统挂载 方法一: 直接挂在,临时生效 # 格式化系统(没有格式化就没有文件系统,放不了数据) dd if=/dev ...
- 解决 hibernate cannot define positional parameter after any named parameters have been defined
解决 hibernate cannot define positional parameter after any named parameters have been defined 把模糊查询的 ...
- TCP socket和web socket的区别
小编先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧.如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视. 还是让我们阅读一些英文材料吧. 让我们直接看sta ...
- 原生js实现一个DIV的碰撞反弹运动,并且添加重力效果
继上一篇... 原生js实现一个DIV的碰撞反弹运动,并且添加重力效果 关键在于边界检测,以及乘以的系数问题,实现代码并不难,如下: <!DOCTYPE html> <html la ...
- linux块设备缓存bcache
1 Bcache介绍Bcache是一种缓存技术,它是根据SSD的特性设计的,由于SSD的随机读写速度要比普通硬盘的随机读写快N多倍,但是一般SSD的容量小且贵,当然土豪除外,所以我们可以综合SSD的读 ...
- ubuntu配置默认python版本并安装pip
ubuntu 16.04本身是自带python的,他本身是自带2.X和3.X,两个版本,默认的是2.X.这里记录一下如果在版本间切换以及如何把python版本切换到3.X下的方法. 1.查看Ubunt ...
- HDU 5550 - Game Rooms(DP + 前缀和预处理)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=5550 题意: 一个大楼有n(2≤n≤4000)层,每层可以建一个乒乓球房或者一个游泳房,且每种房间在大楼 ...