Skip to content

Instantly share code, notes, and snippets.

@Megic
Created October 19, 2012 08:12
Show Gist options
  • Save Megic/3916884 to your computer and use it in GitHub Desktop.
Save Megic/3916884 to your computer and use it in GitHub Desktop.
PHP:SQL&page
//Mysql
***********创建表************
create table `news`(
`id` int(10) NOT NULL auto_increment,
`title` varchar(200) NOT NULL,
`date` date NOT NULL,
`text` text,
unique(`title`),
primary key (`id`)
)engine=innoDB default charset=utf8;
**********************
insert into `news` (`title`,`date`,`text`) values('标题1',now(),'标题1内容'),('标题2',now(),'标题2内容'),('标题3',now(),'标题3内容'),('标题4',now(),'标题4内容')
初始化内容,用于测试
**********************
1、SELECT 查询语句和条件语句
//2、排序,分组,指针查询,计算
3、Insert 插入语句
4、Update 更新语句
5、Delete 删除语句
SELECT 查询字段 FROM 表名 WHERE 条件
*****查询字段:可以使用通配符* 、字段名、字段别名***********表名: 数据库.表名 ,表名
******常用条件: = 等于 、<>不等于、in 包含 、 not in 不包含、 like 匹配
BETWEEN 在范围 、 not BETWEEN 不在范围 < 、>
************like not like************
%任意个字符;_仅替代一个字符;[charlist]字符列中的任何单一字符;[^charlist]或者[!charlist]不在字符列中的任何单一字符;
*******条件运算: and 、 or 、 ( ) *************
分组语句:group by 字段
排序语句:order by 字段,字段 ASC / DESC
指针查询:limit 初始值,结束值
********************************************************
计算:
********************
COUNT(*) 统计函数
MAX(*) 最大值函数
MIN (*) 最小值函数
AVG(*) 平均值函数
SUM(*) 累计值函数(∑)
***************************************
insert into 表名 (字段…,…) values(值…,…)
insert into 表名 values(值…,…)//需要严格对应数据库
***************************************
UPDATE 表名 SET 字段 = 值 WHERE 条件 limit
//条件和select一样
**************************************
DELETE FROM 表名 WHERE 条件 limit
//条件和select一样
************************************************华丽的分隔线****************************************************
//数据库连接
$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");
mysql_select_db("bbs", $conn);
mysql_query("set names 'UTF8'"); //使用UTF-8编码;
mysql_close($conn);//关闭连接
mysql_query(SQL语句或命令) //返回资源
mysql_fetch_array(资源数据) //返回下标与键名数组
mysql_fetch_row(资源数据) //返回下标数组
mysql_fetch_object(资源数据) //返回对象形式调用
mysql_num_rows(资源数据) //返回信息数
****************************************************************************
//php分页
parse_url();
$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");
print_r($ua);
****************************
$_SERVER["REQUEST_URI"];
分页公式:
(当前页数 - 1 )X 每页条数 , 每页条数
Select * from table limit ($Page- 1) * $PageSize, $PageSize
*********************************
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=7">
<title>标题</title>
</head>
<body>
<?php
function _PAGEFT($totle, $displaypg = 20, $url = '') {
global $page, $firstcount, $pagenav, $_SERVER;
$GLOBALS["displaypg"] = $displaypg;
if(!empty($_GET['page']))$page=$_GET['page'];
if (!$page)
$page = 1;
if (!$url) {
$url = $_SERVER["REQUEST_URI"];
}
//URL分析:
$parse_url = parse_url($url);
$url_query = $parse_url['query']; //单独取出URL的查询字串
if ($url_query) {
$url_query = @ereg_replace("(^|&)page=$page", "", $url_query);
$url = str_replace($parse_url["query"], $url_query, $url);
if ($url_query)
$url .= "&page";
else
$url .= "page";
} else {
$url .= "?page";
}
$lastpg = ceil($totle / $displaypg); //最后页,也是总页数
$page = min($lastpg, $page);
$prepg = $page -1; //上一页
$nextpg = ($page == $lastpg ? 0 : $page +1); //下一页
$firstcount = ($page -1) * $displaypg;
//开始分页导航条代码:
$pagenav = "显示第 <B>" . ($totle ? ($firstcount +1) : 0) . "</B>-<B>" . min($firstcount + $displaypg, $totle) . "</B> 条记录,共 $totle 条记录";
//如果只有一页则跳出函数:
if ($lastpg <= 1)
return false;
$pagenav .= " <a href='$url=1'>首页</a> ";
if ($prepg)
$pagenav .= " <a href='$url=$prepg'>前页</a> ";
else
$pagenav .= " 前页 ";
if ($nextpg)
$pagenav .= " <a href='$url=$nextpg'>后页</a> ";
else
$pagenav .= " 后页 ";
$pagenav .= " <a href='$url=$lastpg'>尾页</a> ";
//下拉跳转列表,循环列出所有页码:
$pagenav .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
for ($i = 1; $i <= $lastpg; $i++) {
if ($i == $page)
$pagenav .= "<option value='$i' selected>$i</option>\n";
else
$pagenav .= "<option value='$i'>$i</option>\n";
}
$pagenav .= "</select> 页,共 $lastpg 页";
}
$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");
mysql_select_db("test", $conn);
mysql_query("set names UTF8"); //使用UTF-8编码;
$result=mysql_query("SELECT * FROM `news`");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
_PAGEFT($total,2);
echo $pagenav;
$result=mysql_query("SELECT * FROM `news` limit $firstcount,$displaypg ");
while($row=mysql_fetch_array($result)){
echo "<hr><b>".$row['title']." | ".$row['text'];
}
mysql_close($conn);//关闭连接
?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment