既之前的基础,先写个简单的PHP 与数据库 的数据交流
程序分三个板块,
现在先不用 css 和 javascript 先用纯 html php 写吧。 所以那些 嵌入式 <font size=.... 什么的看看就算了,不推荐如此使用。
为了纪念第一个所谓的程序,遂贴上代码
PHP 对MySQL 的处理,之前一直用 过程方法描述,如$resul = mysql_select_db($db_name);得到的一直是一堆堆警告信息,结果与数据库联系异常...
最后改成了 用面向对象的方式, $result = $conn -> select_db($db_name); 姑且可以用了....
不过用面向对象的方法还不是很熟练...要多练...
最后页面表示如此..
提交之前
提交之后
然后就是一大堆的 下一页下一页咯....
主要实现过程:
第一 :主页面 显示留言内容以及链接处理。
php 格式文件动态网页,进入时马上与数据库连接,并获取数据库中数据表对应数据。
采用分页管理,页数随数据库中留言内容数量决定。
有“ 我要留言” 与 “管理员" 两项, 前者可留言,后者可对留言板进行删除等操作。
<html>
<head>
<meta http-equiv="Conten-type" content="text/html"; charset="gb2312">
<title> 留言板..</title>
</head>
<body>
<div align="center"><font face="黑体"><h2>PHP--connect--MySQL--【留言板】</h2></font></div>
<?php
include "counter.php";
echo "<br><br><br>";
$conn = mysqli_connect("localhost","root","my_passwd");
/*
$db_name = "tools";
$db_name1 = "money";
$command = "create database man";
$command1 = "drop database if exists ".$db_name1;
$re = $conn -> query($command);
if(!$re)
{
echo "建立--失败<br>".mysqli_error($conn);
echo "<br>";
}
*/
$conn-> select_db("Guest_book");
$conn -> query("set names gb2312"); $pageSize = 2;
//@ 为了禁止此语句报错..总是出错...
@ $pageNum = $_GET['pageNum'];
if($pageNum==NULL) $pageNum = 1;
$re1 = $conn ->query("select count(*) from contents");
$re =$re1 -> fetch_row() ; // mysqli_fetch_row($re1);
$totalcount = $re[0];
$exec = "select * from contents limit ".(($pageNum -1) * $pageSize);
$result = $conn ->query($exec);
$flag = true;
while($re = $result->fetch_object())
{
$global["flag"] = false;
echo "<table><tr><td>姓名:".$re->name."</td></tr>";
echo "<tr><td>留言:".$re->content."</td></tr></table><br>";
echo "************************************************************************************";
echo "<br>";
}
if($flag==true)
echo "请点击下一页 ~~<br> <br>"; if($pageNum > 1)
{
echo "<a href=test.php?pageNum=".($pageNum-1).">前一页 </a>";
}
else
echo "前一页 ";
if($pageNum < $totalcount / $pageSize)
{
echo "<a href=test.php?pageNum=".($pageNum+1).">下一页</a>";
}
else
echo "下一页";
?>
<div align="center"><a href="message_post.html" target="_blank">
<font size="+2" face="楷体"><p>我要留言</p></font></a></div>
<div align = "center"><a href="admin_login.html" target="_blank">
<font size="+1" face="楷体" >留言板管理</font></a></div>
</body>
</html>
同时网页上有计数器,可直接计算,通过本地文件读取,或者也可以数据库交换数据(用 counter.php 文件管理)
<?php
function counter1(){
$five = '00000';
$four = '0000';
$three = '000';
$two= '00';
$one = '0';
$counters = 'record.dat';
if(!file_exists($counters))
{
$counter = fopen($counters,w);
fputs($counter,0);
fclose($counter);
}
else{
$fp = fopen($counters,'r+');
$num = fgets($fp,'1024');
$num = $num + 1;
if($num <10)
print '$five'.$num;
else if($num <100)
print $four.$num;
else if($num <1000)
print $three.$num;
else if($num <10000)
print $two.$num;
else if($num <100000)
print $one.$num;
else print $num;
$fp = fopen($counters,'w');
fputs($fp,$num);
fclose($fp);
}
}
?>
<html><head><body>
<font size="6" face="楷体">
访问者之 -----
</font>
<b>
<font size="9" face="verdana" color="#aacc00">
<?php counter1() ?>
</font>
</b>
<font size="6" face="楷体"> -----</font></body>
</head></html>
二 留言 并 将数据存入数据库
其实就是简单的数据更新
<?php
$name = $_POST['user'];
$content = $_POST['post_content'];
$conn = mysqli_connect("localhost","root","Empty_");
if(!$conn) echo "连接数据库失败<br><br>";
else echo "连接数据库成功<br><br>"; $conn->query("set names gb2312");
$conn->select_db("guest_book");
$exec = "insert into contents (name,content) values ('".$_POST['user']."','".$_POST['post_content']."')";
$result = $conn->query($exec) or die ("失败 ".mysqli_error()); if($result>0)
{
echo "添加留言成功<br>";
}
else {
echo "添加失败。。";
echo "<p><a href=test.php><center> 返回主页面</center></a>";
}
?>
<html> <head><meta http-equiv="refresh" content="3;URL=test.php"></head>
<body><p> 三秒后自动返回..</p></body></html>
三 : 管理登录
也是简单的描述
<html>
<title> 后台管理</title>
<body>
<center><font face="黑体" ><h2> 管理登陆</h2></font>
<form action="#" method="post" name="form2">
管理员账号: <input type="text" name="admin_name"><br>
管理员密码: <input type="password" name="admin_password"><br> <input type="submit" value="登录">
<input type="reset" value="重置">
</form>
</center>
</body>
</html>
差不多也就这样了,程序实现功能少,但能基本体现一些后台数据的交流。
*********************************************************华丽分割线***********************************************

既之前的基础,先写个简单的PHP 与数据库 的数据交流的更多相关文章
- koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据
1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...
- 用Python写一个简单的Web框架
一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...
- 如何写一个简单的http服务器
最近几天用C++写了一个简单的HTTP服务器,作为学习网络编程和Linux环境编程的练手项目,这篇文章记录我在写一个HTTP服务器过程中遇到的问题和学习到的知识. 服务器的源代码放在Github. H ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- linux设备驱动归纳总结(十一):写个简单的看门狗驱动【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-112879.html linux设备驱动归纳总结(十一):写个简单的看门狗驱动 xxxxxxxxxxx ...
- iOS开发UI基础—手写控件,frame,center和bounds属性
iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...
- [lua]写个简单的Lua拓展-sleep函数
这几天在做一个小项目,其中用到了一些基本的API, 例如sleep,获取当前目录等等,lua标准库中没有提供这些接口,虽然所第三方库中也都有实现,但是要用的就那么几个函数,在一个嵌入式系统中安装那么多 ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
随机推荐
- 使用Linq对Hashtable和Dictionary<T,T>查询的效率比较
近期做版本迭代任务,有一个在店铺头部展示店主所在的城市名称和省份名称的需求,店主信息表中保存了店主所在的城市Id和省份Id,由于原有业务复杂,要尽量减少Sql执行时间,所以不考虑join城市地区详细表 ...
- [ACM_暴力] 最多交换k个数的顺序,求a[i]的最大连续和
/* http://codeforces.com/contest/426/problem/C 最多交换k个数的顺序,求a[i]的最大连续和 爆解 思路:Lets backtrack interval ...
- ChicagoBoss简介
翻译人:李罗琦 (ChicagoBoss)[http://www.chicagoboss.org] 由 Evan Miller创作,使用erlang/OTP的开发者们可以通过它提供的一个类似于Ruby ...
- JS和C#访问遇到QueryInterface调用出错
在原来的WinForm里,我们只要在窗体类的头部添加属性[System.Runtime.InteropServices.ComVisibleAttribute(true)],然后 webBrowser ...
- .net core 生成二维码
其实生成二维码的组件有很多种,如:QrcodeNet,ZKWeb.Fork.QRCoder,QRCoder等 我选QRCoder,是因为小而易用.支持大并发生成请求.不依赖任何库和网络服务. 既然是. ...
- day 76 滑动窗口 ,头像上传
一.上传文件 前端html <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- C++单继承的构造函数和析构函数调用的顺序
1.继承构造函数调用顺序以及销毁的过程 先调用父类的构造函数,在调用子类的构造函数,析构函数调用相反.
- Python面向对象(成员修饰符)
day25 成员修饰符 class Foo: def __init__(self, name, age): self.name = name self.__age = age#私有,外部无法直接访问 ...
- apicloud 基础
时间成本 人力成本 很多人想开发app 又碍于时间和金钱成本 . 本色对app 要求不高的话. 混合app 开发是一种很好的方式. apicloud 就是一种很好的方式. apicloud ...
- jQuery核心函数的四种不同用法
核心函数根据实参的不同,有四种不同的用法. ①传一个函数作为参数 例如:$(function(){}) 作用:和window.onload = function(){}类似,它会在文档加载完成之后运行 ...