首页

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="jquery-1.11.2.min.js"></script>
</head>
<style>
*
{
magin:0 auto;
padding: 0;
}
.rl{
margin:100px 200px 0px 200px;
padding:0;
} </style>
<body> <div class='rl'>
<?php
//加载类
include("DBDA.php");
//造连接对象
$db=new DBDA();
$sqlcount="select count(*) from NEWS";
$attrs=$db->Query($sqlcount);
$total=$attrs[0][0]; include("fpage.php");
//造分页对象
$page=new Page($total,3,"",true);
//set函数
$page->set('head','页');
$page->set("prev","上一页");
$page->set('first','首页');
//显示
$sql="select * from NEWS ".$page->limit; $attr=$db->query($sql);
for ($i=0; $i <count($attr) ; $i++)
{
//$d=mktime(9, 41, 47, 7, 6, 2014);
//echo "时间戳是 " .$d;
//echo date("Y-m-d h:i:s", $d); echo "<div style='display:inline'><strong>{$attr[$i][1]}</strong></div>
<div style='display:inline'>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp".date('Y年m月d日',strtotime($attr[$i][3]))."</div>
<div >".mb_substr($attr[$i][2],0,100,'utf-8')." ......</div>"; echo "<div><h5><a href='quan.php?ids={$attr[$i][0]}'>详情 》</a></h5>"; echo "<hr>"; }
echo "{$page->fpage()}"; ?>
</div>
</body>
<script>
$(function(){
$("#xiala").change(function(){
//alert($(this).val());
window.location.href=$(this).val();
$(this).attr("selected","selected");
});
})
</script>
</html>

详情页面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*
{
magin:0 auto;
padding: 0;
}
.rl{
margin:100px 200px 0px 200px;
padding:0;
} </style>
</head>
<body>
<div class='rl'>
<?php
$ids=$_GET['ids'];
header("content-type:text/html;charset=utf-8");
include("DBDA.php");
//造连接对象
$db=new DBDA();
$sql="select * from NEWS where ids='{$ids}'"; $attr=$db->query($sql);
//var_dump($attr);
//$d=mktime(9, 41, 47, 7, 6, 2014);
//echo "时间戳是 " .$d;
//echo date("Y-m-d h:i:s", $d);
$str=preg_replace("/\s{4}/", "<br>", $attr[0][2]);
//$str = str_replace(chr(32),chr(13),$attr[0][2]);
//chr(32) -- 空隔
//chr(13) -- 回车,等价于\r
//chr(10)--换行,等价于\n
echo "<div style='display:inline'><strong>{$attr[0][1]}</strong></div>
<div style='display:inline'>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp".date('Y年m月d日',strtotime($attr[0][3]))."</div><br><br>
<div>{$str}</div>"; ?>
</div>
</body>
</html>

分页类

<?php
/**
file: page.class.php
完美分页类 Page
*/
class Page {
private $total; //数据表中总记录数
private $listRows; //每页显示行数
private $limit; //SQL语句使用limit从句,限制获取记录个数
private $uri; //自动获取url的请求地址
private $pageNum; //总页数
private $page; //当前页
private $config = array(
'head' => "条记录",
'prev' => "上一页",
'next' => "下一页",
'first'=> "首页",
'last' => "末页"
);
//在分页信息中显示内容,可以自己通过set()方法设置
private $listNum = 10; //默认分页列表显示的个数 /**
构造方法,可以设置分页类的属性
@param int $total 计算分页的总记录数
@param int $listRows 可选的,设置每页需要显示的记录数,默认为25条
@param mixed $query 可选的,为向目标页面传递参数,可以是数组,也可以是查询字符串格式
@param bool $ord 可选的,默认值为true, 页面从第一页开始显示,false则为最后一页
*/
public function __construct($total, $listRows=25, $query="", $ord=true){
$this->total = $total;
$this->listRows = $listRows;
$this->uri = $this->getUri($query);
$this->pageNum = ceil($this->total / $this->listRows);
/*以下判断用来设置当前面*/
if(!empty($_GET["page"])) {
$page = $_GET["page"];
}else{
if($ord)
$page = 1;
else
$page = $this->pageNum;
} if($total > 0) {
if(preg_match('/\D/', $page) ){
$this->page = 1;
}else{
$this->page = $page;
}
}else{
$this->page = 0;
} $this->limit = "LIMIT ".$this->setLimit();
} /**
用于设置显示分页的信息,可以进行连贯操作
@param string $param 是成员属性数组config的下标
@param string $value 用于设置config下标对应的元素值
@return object 返回本对象自己$this, 用于连惯操作
*/
function set($param, $value){
if(array_key_exists($param, $this->config)){
$this->config[$param] = $value;
}
return $this;
} /* 不是直接去调用,通过该方法,可以使用在对象外部直接获取私有成员属性limit和page的值 */
function __get($args){
if($args == "limit" || $args == "page")
return $this->$args;
else
return null;
} /**
按指定的格式输出分页
@param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
@return string 分页信息内容
*/
function fpage(){
$arr = func_get_args(); $html[0] = "<span class='p1'>&nbsp;共<b> {$this->pageNum} 页</b></span>";
$html[1] = "&nbsp;第 <b>".$this->page."</b> 页&nbsp;";
$html[2] = "&nbsp;本页从 <b>{$this->start()}-{$this->end()}</b> 条&nbsp;";
//$html[3] = "&nbsp;<b>{$this->page}/{$this->pageNum}</b>页&nbsp;";
$html[4] = $this->firstprev();
$html[5] = $this->pageList();
$html[6] = $this->nextlast();
//$html[7] = $this->goPage(); $fpage = '<div style="font:12px \'\5B8B\4F53\',san-serif;">';
if(count($arr) < 1)
$arr = array(4,6,5,1,0); for($i = 0; $i < count($arr); $i++)
$fpage .= $html[$arr[$i]]; $fpage .= '</div>';
return $fpage;
} /* 在对象内部使用的私有方法,*/
private function setLimit(){
if($this->page > 0)
return ($this->page-1)*$this->listRows.", {$this->listRows}";
else
return 0;
} /* 在对象内部使用的私有方法,用于自动获取访问的当前URL */
private function getUri($query){
$request_uri = $_SERVER["REQUEST_URI"];
$url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?'; if(is_array($query))
$url .= http_build_query($query);
else if($query != "")
$url .= "&".trim($query, "?&"); $arr = parse_url($url); if(isset($arr["query"])){
parse_str($arr["query"], $arrs);
unset($arrs["page"]);
$url = $arr["path"].'?'.http_build_query($arrs);
} if(strstr($url, '?')) {
if(substr($url, -1)!='?')
$url = $url.'&';
}else{
$url = $url.'?';
} return $url;
} /* 在对象内部使用的私有方法,用于获取当前页开始的记录数 */
private function start(){
if($this->total == 0)
return 0;
else
return ($this->page-1) * $this->listRows+1;
} /* 在对象内部使用的私有方法,用于获取当前页结束的记录数 */
private function end(){
return min($this->page * $this->listRows, $this->total);
} /* 在对象内部使用的私有方法,用于获取上一页和首页的操作信息 */
private function firstprev(){
if($this->page >=1) {
$str = "&nbsp;<a href='{$this->uri}page=1'>{$this->config["first"]}</a>&nbsp;";
$str .= "<a href='{$this->uri}page=".($this->page-1)."'>{$this->config["prev"]}</a>&nbsp;";
return $str;
} } /* 在对象内部使用的私有方法,用于获取页数列表信息 */
private function pageList(){
$linkPage = "&nbsp;<select id='xiala' style='display:inline-block'><b>"; $inum = floor($this->listNum/2);
/*当前页前面的列表 */ for($i = $inum; $i >= 1; $i--){
$page = $this->page-$i; if($page >= 1) $linkPage .= "<option value='{$this->uri}page={$page}'>{$page}</option>&nbsp;";
}
/*当前页的信息 */
if($this->pageNum > 1)
$linkPage .= "<option selected='selected' style='padding:1px 2px;background:#BBB;color:white'>{$this->page}</option>&nbsp;"; /*当前页后面的列表 */
for($i=1; $i <= $inum; $i++){
$page = $this->page+$i;
if($page <= $this->pageNum)
$linkPage .= "<option value='{$this->uri}page={$page}'>{$page}</option>&nbsp;";
else
break;
}
$linkPage .= '</b></select>';
return $linkPage;
} /* 在对象内部使用的私有方法,获取下一页和尾页的操作信息 */
private function nextlast(){
if($this->page != $this->pageNum) {
$str = "&nbsp;<a href='{$this->uri}page=".($this->page+1)."'>{$this->config["next"]}</a>&nbsp;";
$str .= "&nbsp;<a href='{$this->uri}page=".($this->pageNum)."'>{$this->config["last"]}</a>&nbsp;";
return $str;
}
} /* 在对象内部使用的私有方法,用于显示和处理表单跳转页面 */
private function goPage(){
if($this->pageNum > 0) { // 下拉跳转功能 goToPage() 在 $url 页面定义,很简单
// include("DBDA.php");
// $db=new DBDA();
// $Goto="&nbspGOTO:<SELECT NAME=select_page onChange=goToPage(this.value)>"; // for($i=1;$i<=$total_pages;$i++){
// if($page==$i)
// $Goto.="<OPTION VALUE=$i selected>$i";
// else
// $Goto.="<OPTION VALUE=$i>$i";
// }
// $Goto.="</SELECT>"; //return "<select ><option value='$this->pageNum'>{$this->page}</option></select>"; return '&nbsp;<input style="width:20px;height:17px !important;height:18px;border:1px solid #CCCCCC;" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>'.$this->pageNum.')?'.$this->pageNum.':this.value;location=\''.$this->uri.'page=\'+page+\'\'}" value="'.$this->page.'"><input style="cursor:pointer;width:25px;height:18px;border:1px solid #CCCCCC;" type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value>'.$this->pageNum.')?'.$this->pageNum.':this.previousSibling.value;location=\''.$this->uri.'page=\'+page+\'\'">&nbsp;';
}
} /* 在对象内部使用的私有方法,用于获取本页显示的记录条数 */
private function disnum(){
if($this->total > 0){
return $this->end()-$this->start();
}else{
return 0;
}
}
}

数据库类

<?php

class DBDA
{
public $host = "localhost"; //服务器地址
public $uid = "root"; //数据库的用户名
public $pwd = "123"; //数据库的密码 //执行SQL语句,返回相应结果的函数
//$sql是要执行的SQL语句
//$type是SQL语句的类型,0代表增删改,1代表查询
//$db代表要操作的数据库
public function Query($sql,$type=1,$db="mydb")
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
//如果是查询语句返回结果集的二维数组
return $result->fetch_all();
}
else
{
//如果是其他语句,返回true或false
return $result;
}
} //Ajax调用返回JSON
public function JsonQuery($sql,$type=1,$db="test2")
{
//定义数据源
$dsn = "mysql:dbname={$db};host={$this->host}";
//造pdo对象
$pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}"); //准备执行SQL语句
$st = $pdo->prepare($sql); //执行预处理语句
if($st->execute())
{
if($type==1)
{
$attr = $st->fetchAll(PDO::FETCH_ASSOC);
return json_encode($attr);
}
else
{
if($st)
{
return "OK";
}
else
{
return "NO";
}
} }
else
{
echo "执行失败!";
} }
//Ajax调用返回字符串
public function StrQuery($sql,$type=1,$db="mydb")
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
$attr = $result->fetch_all();
$str = "";
//如果是查询语句返回字符串
for($i=0;$i<count($attr);$i++)
{
for($j=0;$j<count($attr[$i]);$j++)
{
$str = $str.$attr[$i][$j];
$str = $str."^";
}
$str = substr($str,0,strlen($str)-1);
$str = $str."|";
}
$str = substr($str,0,strlen($str)-1); return $str;
}
else
{
//如果是其他语句,返回true或false
if($result)
{
return "OK";
}
else
{
return "NO";
}
}
} }

最新文章

  1. 函数式Android编程(II):Kotlin语言的集合操作
  2. cron 定时器简单入门
  3. PHPMyadmin 配置文件详解(配置)
  4. Android 使用NDK编译sipdroid Library
  5. 用Filter解决乱码和jsp缓存问题
  6. Getting Started with Mongoose and Node.js – A Sample Comments System | Dev Notes
  7. HTML5会砸掉iOS和Android开发者的饭碗么?
  8. XML Drawable与9-Patches
  9. Web工程软件升级之数据库升级(二)
  10. nodejs微信开发获取token,ticket-1
  11. ImageIO.write不好用了
  12. JavaScript基本数据类型
  13. 最简化搭建yum仓库
  14. oracle用命令创建表空间、用户,并为用户授权、收回权限。
  15. python 项目启动路径自动添加
  16. 【译】9. Java反射——泛型
  17. HTML 第十一章总结
  18. FPAG结构 组成 工作原理 开发流程(转)
  19. unity Texture贴图纹理及相关属性
  20. php实现Facebook风格的 time ago函数

热门文章

  1. 序列化Color对象
  2. 女性社区TOP10
  3. AngularJs学习笔记--directive
  4. 删除提示 FOREIGN KEY 约束引用”
  5. WCF Service的Restfull风格
  6. ubuntu安装hive
  7. HDU 1698 Just a Hook (线段树区间更新)
  8. HDU 3790 最短路径问题(SPFA || Dijkstra )
  9. Good Bye 2014 D. New Year Santa Network 图论+期望
  10. win7桌面便签。自带的