2016/3/24 ①数据库与php连接 三种输出fetch_row()、fetch_all()、fetch_assoc() ②增删改时判断(布尔型) ③表与表之间的联动 ④下拉菜单 ⑤登陆 三个页面
①数据库与php连接 图表
1 header("content-type:text/html;charset=utf-8"); 2 //第一种方式: 3 //1,生成连接,连接到数据库上的服务器 4 // localhost:主机位置,如果是网络上的要写Ip地址 5 // root:服务器管理员 ”123“ 密码 6 @$test=mysql_connect("localhost","root","123"); 7 //2,选择数据库 8 mysql_select_db("test3",$test); 9 //3,写SQL语句 10 $sql="select * from student";//查询方式 11 //$sql="delete from student where Sno='101'"; 12 //如果是增删改如上 返回的是个布尔值成功显示的是1 13 //4,执行SQL语句 14 $result=mysql_query($sql); 15 //5,提取数据 fetch_row 逐条提取每一行 16 while($array=mysql_fetch_row($result)) 17 { 18 print_r($array); 19 }
1 //第二种方式 面向对象的方式 2 //1,生成连接对象 3 //$db=new mysqli("服务器名","用户名","密码","数据库"); 4 $db=new mysqli("localhost","root","123","test3"); 5 //2,判断是否连接成功 6 !mysqli_connect_error() or die ("连接失败!"); 7 //相当于{echo "连接失败!"; exit;//直接退出程序} 8 //3,写sql语句 9 $sql="select * from student"; 10 //4,执行sql语句 11 $result=$db->query($sql); 12 //5,操作结果 13 $row=$result->fetch_row(); 14 15 print_r($row);//取一条 用while循环 遍历 16 //①用fetch_row(); 17 while ($row=$result->fetch_row()) { 18 print_r($row); 19 echo "<br>"; 20 }
显示:
接上例代码
1 //②用fetch_all(); 2 $arra=$result->fetch_all();//一次返回所有的数据,以二维数组形式返回 3 print_r($arra);
显示:
接上上例代码
1 //③fetch_assoc();以关联数组的形式返回 2 while($array=$result->fetch_assoc()){ 3 print_r($array); 4 echo "<br>"; 5 }
显示:
②增删改时判断(布尔型)
1 //1,生成连接对象 2 //$db=new mysqli("服务器名","用户名","密码","数据库"); 3 $db=new mysqli("localhost","root","123","test2"); 4 //2,判断是否连接成功 5 !mysqli_connect_error() or die ("连接失败!"); 6 //相当于{echo "连接失败!"; exit;//直接退出程序} 7 //3,写sql语句 8 $sql="delete from nation where Code='n001'"; 9 //4,执行sql语句 10 $result=$db->query($sql); 11 if ($result) { 12 echo "增删改成功"; 13 } 14 else{ 15 echo "增删改失败"; 16 }
1 //1,生成连接对象 2 //$db=new mysqli("服务器名","用户名","密码","数据库"); 3 $db=new mysqli("localhost","root","123","test2"); 4 //2,判断是否连接成功 5 !mysqli_connect_error() or die ("连接失败!"); 6 //相当于{echo "连接失败!"; exit;//直接退出程序} 7 //3,写sql语句 8 $sql="insert into nation values('n001','汉族')"; 9 // //4,执行sql语句 10 $result=$db->query($sql); 11 if ($result) { 12 echo "增删改成功"; 13 } 14 else{ 15 echo "增删改失败"; 16 }
③表与表之间的联动
制表
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 //1,建立连接 4 $db=new mysqli("localhost","root","123","test2"); 5 //2,判断是否有问题 6 !mysqli_connect_error() or die("连接失败!"); 7 //3,写Sql语句 8 $sql="select * from info"; 9 //4,执行Sql语句 10 $result=$db->query($sql); 11 //5,操作输出结果 12 //$row=$result->fetch_row();//单独输出一条 13 //显示 14 echo"<table width=100% border=1 cellspacing='0' cellpadding='0'>"; 15 echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>"; 16 while($row=$result->fetch_row()){//循环输出 17 //$sex=$row[2]?"男":"女"; 18 19 echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$sex</td><td>$row[3]</td><td>$row[4]</td></tr>"; 20 } 21 22 echo"</table>" 23 24 ?>
显示:
$sex=$row[2]?"男":"女"; 通过三位运算符转换
表与表之间的联动①全式
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 //1,建立连接 4 $db=new mysqli("localhost","root","123","test2"); 5 //2,判断是否有问题 6 !mysqli_connect_error() or die("连接失败!"); 7 //3,写Sql语句 8 $sql="select * from info"; 9 //4,执行Sql语句 10 $result=$db->query($sql); 11 //5,操作输出结果 12 //$row=$result->fetch_row();//单独输出一条 13 //显示 14 echo"<table width=100% border=1 cellspacing='0' cellpadding='0'>"; 15 echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>"; 16 while($row=$result->fetch_row()){//循环输出 17 $sex=$row[2]?"男":"女"; 18 $minzu=ShowNation($row[3]); 19 echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$sex</td><td>$minzu</td><td>$row[4]</td></tr>"; 20 } 21 22 echo"</table>"; 23 24 function ShowNation($Code) 25 { 26 //1,建立连接 27 $db=new mysqli("localhost","root","123","test2"); 28 //2,判断是否有问题 29 !mysqli_connect_error() or die("连接失败!"); 30 //3,写Sql语句 31 $sql="select Name from nation where Code='$Code'"; 32 //4,执行Sql语句 33 $result=$db->query($sql); 34 //5,处理显示 35 $getrow=$result->fetch_row(); 36 return $getrow[0]; 37 } 38 39 ?>
表与表之间的联动②省略式
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 //1,建立连接 4 $db=new mysqli("localhost","root","123","test2"); 5 //2,判断是否有问题 6 !mysqli_connect_error() or die("连接失败!"); 7 //3,写Sql语句 8 $sql="select * from info"; 9 //4,执行Sql语句 10 $result=$db->query($sql); 11 //5,操作输出结果 12 //$row=$result->fetch_row();//单独输出一条 13 //显示 14 echo"<table width=100% border=1 cellspacing='0' cellpadding='0'>"; 15 echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>"; 16 while($row=$result->fetch_row()){//循环输出 17 $sex=$row[2]?"男":"女"; 18 $minzu=ShowNation($db,$row[3]); //注销方法ShowNation下的前两步链接和确认 把参数$db加入 传值 19 echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$sex</td><td>$minzu</td><td>$row[4]</td></tr>"; 20 } 21 22 echo"</table>"; 23 24 function ShowNation($db,$Code) //注销下面的前两步连接和确认 把参数$db加入 接受传值 连接少了开销小了 提高效率 25 { 26 //1,建立连接 27 // $db=new mysqli("localhost","root","123","test2"); 28 // //2,判断是否有问题 29 // !mysqli_connect_error() or die("连接失败!"); 30 //3,写Sql语句 31 $sql="select Name from nation where Code='$Code'"; 32 //4,执行Sql语句 33 $result=$db->query($sql); 34 //5,处理显示 35 $getrow=$result->fetch_row(); 36 return $getrow[0]; 37 } 38 39 40 41 ?>
效果一样:
④下拉菜单
1 <select> 2 <?php 3 header("content-type:text/html;charset=utf-8"); 4 //造链接对象 5 $db=new mysqli("localhost","root","123","test2"); 6 //判断是否出错 7 !mysqli_connect_error()or die("连接失败!"); 8 //写sql语句 9 $sql="select * from nation"; 10 //执行sql语句 11 $result=$db->query($sql); 12 //处理数据并显示 13 $array=$result->fetch_all(); 14 for($i=0;$i<count($array);$i++) 15 { 16 list($Code,$Name)=$array[$i]; 17 echo "<option value='$Code'>$Name</option>"; 18 } 19 ?> 20 </select>
显示:
⑤登陆 三个页面 登陆 处理 主页
1 //test7denglu.php 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7 </head> 8 <body> 9 <form action="test7chulilogin.php" method="post"> 10 11 <div> 12 用户名: 13 <input type="text" name="uid"/> 14 </div> 15 <div> 16 密   码: 17 <input type="text" name="pwd"/> 18 </div> 19 <div> 20 21 <input type="submit" name="登录"/> 22 </div> 23 24 </form> 25 </body> 26 </html>
//test7chulilogin.php
1 <?php 2 $uid=$_POST["uid"]; 3 //POST必须大写否则传值不成功 4 $pwd=$_POST["pwd"]; 5 6 //造连接对象 7 $db=new mysqli("localhost","root","123","test2"); 8 //判断是否连接成功 9 !mysqli_connect_error() or die("连接失败!"); 10 //写sql语句 11 $sql="select count(*) from login where UserName='$uid'and Password='$pwd'"; 12 //执行sql语句 13 $result=$db->query($sql); 14 $ar=$result->fetch_row(); 15 16 if ($ar[0]==1) 17 { 18 header("location:test7main.php"); 19 } 20 else 21 { 22 header("location:test7denglu.php"); 23 } 24 25 ?>
//test7main.php
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 </head> 7 <body> 8 登陆成功! 9 </body> 10 </html>
显示:
输入错误跳回登陆页 test7denglu.php
输入正确跳到test7main.php页 显示:登陆成功