header("Content-Type:text/html; charset=utf8");
mysql_connect('211.147.14.57','e1215cms_4','111111');
mysql_select_db('e1215cms_4');
mysql_query("set names utf8");
$sql = "SELECT
`news`.*, `news_categorys`.`name` AS cate_name
FROM
`news`
JOIN `news_categorys` ON `news`.categoryid = `news_categorys`.id
WHERE
`news`.categoryid = '{$_GET['categoryid']}'
AND `news`.title LIKE '%{$_GET['keyword']}%'";
//执行分页
$result = mysql_query($sql);
if(!$result)
{
die(mysql_error());
}
$total_num = mysql_num_rows($result);
$per_num = 2;
$now_page=isset($_GET['now_page'])?$_GET['now_page']:1;
$offset = $per_num*($now_page-1);
$pages = ceil($total_num/$per_num);
if($now_page==1){
$prv_page = 1;
}else{
$prv_page = $now_page - 1;
}
if($now_page==$pages){
$next_page = $pages;
}else{
$next_page = $now_page + 1;
}
$sql .= "limit {$offset},{$per_num}";
$result = mysql_query($sql);
if(!$result)
{
die(mysql_error());
}
$rows = array();
while($row = mysql_fetch_assoc($result))
{
$rows[] = $row;
}
$tree = getTree();
//1.读取新闻分类
function getTree($pid = 0,$typeTree = array(),$level = 0){
$list = getList($pid);
foreach($list as $l){
$levelStr = '';
for($i=0;$i
$levelStr.='|-';
}
$levelStr .= '';//$levelStr = $levelStr.''
$l['name'] = $levelStr.$l['name'];
$typeTree[] = $l;
//逐层深入递归
$typeTree = getTree($l['id'],$typeTree,$level+1);//获取下一级分类
//$level 指子分类层级
}
return $typeTree;
}
function getList($pid = 0)
{
//按新闻分类表的 父id查找 子分类列表
$sql = "select * from news_categorys where parentid = '{$pid}' limit 100";
$query = mysql_query($sql);
if(!$query)
{
//有错报错
die(mysql_error());
}
$lists = array();
//在结果集里取一行
while($row = mysql_fetch_assoc($query))
{
$lists[] = $row;
}
return $lists;
}
?>
请选择新闻类别:
全部新闻
" =$op['id']==$_GET['categoryid']?'selected="selected"':''?>>=$op['name']?>
"/>
var_dump($rows);
?>
« First" title="Previous Page">« Previous
$number_head = '
$class = '" class="';
$title = '" title="';
$num_l = '">';
$num_r = '
';$tail = '... ';
if($pages-5<=0){
for($i=1;$i<=$pages;$i++){
$current_class = ($i==$now_page)?'number current':'number';
echo $number_head.$i.$class.$current_class.$title.$i.$num_l.$i.$num_r;
}
}
if(($now_page-1<3) and ($pages-5>0)){
for($i=1;$i<=5;$i++){
$current_class = ($i==$now_page)?'number current':'number';
echo $number_head.$i.$class.$current_class.$title.$i.$num_l.$i.$num_r;
}echo $tail;
}
if(($now_page-1>=3) and ($pages-5>0) and (($pages-($now_page+2))<=0) ){
echo $tail;
for($i=4;$i>=0;$i--){
$j = $pages-$i;
$current_class = ($j==$now_page)?'number current':'number';
echo $number_head.$j.$class.$current_class.$title.$j.$num_l.$j.$num_r;
}
}
if(($now_page-1>=3) and ($pages-5>0) and (($pages-($now_page+2))>0) ){
echo $tail;
for($i=2;$i>=-2;$i--){
$j = $now_page-$i;
$current_class = ($j==$now_page)?'number current':'number';
echo $number_head.$j.$class.$current_class.$title.$j.$num_l.$j.$num_r;
}echo $tail;
}
?>
" title="Next Page">Next »" title="Last Page">Last »
《分组分页。。。》
header("Content-Type:text/html; charset=utf8");
mysql_connect("localhost","root","");
mysql_select_db("e1215_cms");
mysql_query("set names utf8");
$sql = "select * from `news`";
$relust = mysql_query($sql);
if(!$relust)
{
die(mysql_error());
}
$total_num = mysql_num_rows($relust);
$per_num = 5;
$now_page = isset($_GET['now_page'])?$_GET['now_page']:1;
$offset = ($now_page-1) * $per_num;
$pages = ceil($total_num/$per_num);
$sql = "select * from `news` limit {$offset},{$per_num}";
echo $sql;
$relust = mysql_query($sql);
if(!$relust)
{
die(mysql_error());
}
$rows = array();
while($row = mysql_fetch_assoc($relust))
{
$rows[] = $row;
}
foreach($rows as $row)
{
echo $row['content'];
echo "
";
}
?>
var_dump($pages);
$show_num = 2;
$start = $now_page - ($show_num / 2);
$end = $now_page + ($show_num / 2);
$start = $start < 1?1:$start;
$end = $end > $pages?$pages:$end;
for($i=$start;$i<=$end;$i++):?>
$show_num = 4;
$start = $now_page - ceil($show_num/2);
$start = $start < 1 ? 1 : $start;
$end = $now_page + ceil($show_num/2);
$end = $end > $pages ? $pages : $end;
/*for($i=$start;$i<=$end;$i++):?>
代码重构:
header("Content-Type:text/html; charset=utf8");
//todo 1. 建一个新闻分类下拉框 关键字搜索文本框 提交按钮
//按分类 和 关键字 来搜索
//2.后台接受 分类id 关键字
$categoryid = isset($_GET['categoryid'])?$_GET['categoryid']:'';
$keyword = isset($_GET['keyword'])?$_GET['keyword']:'';
//3.连接数据库
mysql_connect('211.147.14.57','e1215cms_4','111111');
mysql_select_db('e1215cms_4');
mysql_query("set names utf8");
//5.增加查询条件
$where = ' where 1';
if($categoryid)$where .= " and categoryid = '{$categoryid}'";
if($keyword)$where .= " and title like '%{$keyword}%'";
//4.写sql查询语句
//先写 全部 查询 不带条件
$sql = "select * from news {$where}";
echo $sql;
//7.执行sql查询
$result = mysql_query($sql);
if(!$result)
{
die(mysql_error());
}
$rows = array();
while($row = mysql_fetch_assoc($result))
{
$rows[] = $row;
}
//6.调用新闻分类函数
include("news.fun.php");
$tree = getTree();
?>
全部新闻
foreach($tree as $op):?>
" =$categoryid==$op['id']?' selected="selected"':''?>>=$op['name']?>
endforeach;?>
"/>
var_dump($rows)?>
function pages()
{
}
//1.读取新闻分类
function getTree($pid = 0,$typeTree = array(),$level = 0){
$list = getList($pid);
foreach($list as $l){
$levelStr = '';
for($i=0;$i
$levelStr.='|-';
}
$levelStr .= '';//$levelStr = $levelStr.''
$l['name'] = $levelStr.$l['name'];
$typeTree[] = $l;
//逐层深入递归
$typeTree = getTree($l['id'],$typeTree,$level+1);//获取下一级分类
//$level 指子分类层级
}
return $typeTree;
}
function getList($pid = 0)
{
//按新闻分类表的 父id查找 子分类列表
$sql = "select * from news_categorys where parentid = '{$pid}' limit 100";
$query = mysql_query($sql);
if(!$query)
{
//有错报错
die(mysql_error());
}
$lists = array();
//在结果集里取一行
while($row = mysql_fetch_assoc($query))
{
$lists[] = $row;
}
return $lists;
}
?>
本文详细介绍了如何使用PHP实现新闻的无级分类查询、搜索功能和分页显示。通过示例代码展示了如何连接数据库、构造查询SQL、处理分页以及构建分类树形结构。
139

被折叠的 条评论
为什么被折叠?



