程序分三个板块,

现在先不用 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).">前一页 &nbsp;&nbsp;</a>";
}
else
echo "前一页 &nbsp;&nbsp;";
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 与数据库 的数据交流的更多相关文章

  1. koa 基础(二十一)nodejs 操作mongodb数据库 --- 查询数据

    1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...

  2. koa 基础(二十)nodejs 操作mongodb数据库 --- 新增数据

    1.app.js /** * nodejs 操作mongodb数据库 * 1.安装 操作mongodb * cnpm install mongodb --save * 2.引入 mongodb 下面的 ...

  3. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  4. 如何写一个简单的http服务器

    最近几天用C++写了一个简单的HTTP服务器,作为学习网络编程和Linux环境编程的练手项目,这篇文章记录我在写一个HTTP服务器过程中遇到的问题和学习到的知识. 服务器的源代码放在Github. H ...

  5. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  6. linux设备驱动归纳总结(十一):写个简单的看门狗驱动【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-112879.html linux设备驱动归纳总结(十一):写个简单的看门狗驱动 xxxxxxxxxxx ...

  7. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  8. [lua]写个简单的Lua拓展-sleep函数

    这几天在做一个小项目,其中用到了一些基本的API, 例如sleep,获取当前目录等等,lua标准库中没有提供这些接口,虽然所第三方库中也都有实现,但是要用的就那么几个函数,在一个嵌入式系统中安装那么多 ...

  9. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

随机推荐

  1. 微信公众平台如何与Web App结合?

    Web App简而言之就是为移动平台而优化的网页,它可以表现得和原生应用一样,并且克服了原生应用一些固有的缺点.一般而言Web App最大的入口是浏览器,但现在微信公众平台作为新兴的平台,结合其内置浏 ...

  2. jquery.cookie.js 删除cookie

    简单交代一下背景:asp.net页面的上的切换登录按钮的点击事件实现cookie的删除. 但是好像没办法直接删除,通过网上提供的方法,可以使用jquery.cookie.js 来操作cookie的创建 ...

  3. C# TinyMapper

    https://github.com/TinyMapper/TinyMapper 据说性能蛮高的,我没对比测试过. NuGet安装下. 新增三个实体. public class A { public ...

  4. [Xamarin]我的Xamarin填坑之旅(一)

    一想到明天是星期五,不对,是今天,心里就很激动,毕竟明天没课.激动之余,来写一篇博客,记录一下最近踏坑Xamarin开发校园助手APP的一些事儿.也许更像是一篇流水账. 在扯Xamarin之前,有必要 ...

  5. Uliweb之 ORM基本使用(Sqlalchemy)

    参考:http://limodou.github.io/uliweb-doc/zh_CN/db/orm.html#title_1-2 ORM基本使用¶ 使用要求¶ 需要安装sqlalchemy 0.7 ...

  6. openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.].

    错误: 实例 "test-gtj" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Build of instance 5ea8c935-ee07-4788-823 ...

  7. C++单继承的构造函数和析构函数调用的顺序

    1.继承构造函数调用顺序以及销毁的过程 先调用父类的构造函数,在调用子类的构造函数,析构函数调用相反.

  8. 【wepy实战】wepy搭建完整项目

    使用小程序框架wepy,搭建完整实战项目.文章将从项目结构.配置.模块等进行逐步分析和学习. 文章适合小程序开发新手以及有经验的小程序developer,不喜勿喷,不吝赐教! 本文为作者原创,转发请标 ...

  9. 【BZOJ2300】【HAOI2011】防线修建

    题目大意:给你m+3个点,有q个操作,每次要么询问当前点集构所构成的上凸壳总长度,要么在当前点集中删除一个点. 这题是吼题啊!!! 刚开始想着如何正常地做,考虑过用线段树维护一个区间内的凸包,发现并不 ...

  10. 基于CAS操作的非阻塞算法

    非阻塞算法(non-blocking algorithms)定义        所谓非阻塞算法是相对于锁机制而言的,是指:一个线程的失败或挂起不应该引起另一个线程的失败或挂起的一种算法.一般是利用硬件 ...