第7章习题答案.docx
- 文档编号:12246644
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:21
- 大小:45.08KB
第7章习题答案.docx
《第7章习题答案.docx》由会员分享,可在线阅读,更多相关《第7章习题答案.docx(21页珍藏版)》请在冰豆网上搜索。
第7章习题答案
第7章课后习题答案
1、根据PHP新闻管理系统的需求和数据库设计,完成其他数据表数据库访问层的设计:
(1)新闻分类表的数据访问层的设计与实现。
(2)新闻表的数据访问层的设计与实现。
(3)新闻评论表的数据访问层的设计与实现。
(4)新闻点赞表的数据访问层的设计与实现。
新闻分类表的数据访问层:
/**新闻分类信息操作文件**/
require_once'common.php';
//添加新闻分类
functionaddNewsClass($classname,$classdesc){
$link=get_connect();
$classname=mysql_dataCheck($classname);
$classdesc=mysql_dataCheck($classdesc);
$sql="insertinto`tbl_newsclass`(`classname`,`classdesc`)values('$classname','$classdesc')";
$rs=execUpdate($sql,$link);
return$rs;
}
//编辑新闻分类
functionupdateNewsClass($classid,$classname,$classdesc){
$link=get_connect();
$classname=mysql_dataCheck($classname);
$classdesc=mysql_dataCheck($classdesc);
$sql="update`tbl_newsclass`set`classname`='$classname',`classdesc`='$classdesc'where`classid`=$classid";
$rs=execUpdate($sql,$link);
return$rs;
}
//删除新闻分类
functiondeleteNewsClass($classid){
$sql="deletefrom`tbl_newsclass`where`classid`=$classid";
$link=get_connect();
$rs=execUpdate($sql,$link);
return$rs;
}
//根据编号查找新闻分类
functionfindNewsClassById($classid){
$sql="select*from`tbl_newsclass`where`classid`=$classid";
$link=get_connect();
$rs=execQuery($sql,$link);
if(count($rs)>0){return$rs[0];}
return$rs;
}
//查找新闻分类信息
functionfindNewsClass(){
$link=get_connect();
$sql="select*from`tbl_newsclass`";
$rs=execQuery($sql,$link);
return$rs;
}
新闻表的数据访问层:
/**新闻信息操作文件**/
require_once'common.php';
//添加新闻
functionaddNews($title,$content,$uid,$classid){
$link=get_connect();
$title=mysql_dataCheck($title);
$content=mysql_dataCheck($content);
$format="%Y-%m-%d%H:
%M:
%S";//设置时间格式
$publishtime=strftime($format);//获取系统时间
$sql="insertinto`tbl_news`(`title`,`content`,`uid`,`classid`,`publishtime`)values('$title','$content',$uid,$classid,'$publishtime')";
$rs=execUpdate($sql,$link);
return$rs;
}
//编辑新闻
functionupdateNews($newsid,$title,$content,$uid,$classid){
$link=get_connect();
$title=mysql_dataCheck($title);
$content=mysql_dataCheck($content);
$sql="update`tbl_news`set`title`='$title',`content`='$content',`uid`=$uid,`classid`=$classidwhere`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//置顶新闻,根据新闻编号置顶新闻
functionupdateTopNews($newsid){
$link=get_connect();
$sql="update`tbl_news`set`istop`=1where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//取消新闻置顶,根据新闻编号取消新闻置顶
functioncancelTopNews($newsid){
$link=get_connect();
$sql="update`tbl_news`set`istop`=0where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//置热点新闻,根据新闻编号置热点新闻
functionupdateHotNews($newsid){
$link=get_connect();
$sql="update`tbl_news`set`ishot`=1where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//取消热点新闻,根据新闻编号取消热点新闻
functioncancelHotNews($newsid){
$link=get_connect();
$sql="update`tbl_news`set`ishot`=0where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//根据新闻编号修改点赞计数
functionupdateLikeCount($newsid){
$link=get_connect();
$sql="update`tbl_news`set`likecount`=`likecount`+1where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//根据新闻编号修改阅读计数
functionupdateViewCount($newsid){
$link=get_connect();
$sql="update`tbl_news`set`viewcount`=`viewcount`+1where`newsid`=$newsid";
$rs=execUpdate($sql,$link);
return$rs;
}
//删除新闻
functiondeleteNews($newsid){
$sql="deletefrom`tbl_news`where`newsid`=$newsid";
$link=get_connect();
$rs=execUpdate($sql,$link);
return$rs;
}
//按照发布时间倒序查询所有新闻信息
functionfindNews(){
$sql="select*from`tbl_news`orderby`publishtime`desc";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
//根据新闻类别显示相应类别新闻
functionfindNewsByClassid($classid){
$sql="select*from`tbl_news`where`classid`=$classidorderby`publishtime`desc";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
//根据编号查找新闻
functionfindNewsById($newsid){
$sql="select*from`tbl_news`where`newsid`=$newsid";
$link=get_connect();
$rs=execQuery($sql,$link);
if(count($rs)>0){return$rs[0];}
return$rs;
}
//根据用户编号查找新闻
functionfindNewsByUid($uid){
$sql="select*from`tbl_news`where`uid`=$uid";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
//按照指定字段,指定关键词模糊查询新闻信息,若$search_field没有设置,则默认对新闻标题和内容字段都进行查找
functionfindNewsByName($keyword,$search_field="all"){
if($search_field=="all"){
$sql="select*from`tbl_news`where`title`like'%$keyword%'or`content`like'%$keyword%'orderby`publishtime`desc";
}else{
$sql="select*from`tbl_news`where`$search_field`like'%$keyword%'orderby`publishtime`desc";
}
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
//显示热点新闻若缺省参数,则显示所有的热点新闻,否则显示指定条数的热点新闻
functionfindHotNews($countlimit=0){
$sql="select*from`tbl_news`where`ishot`=1orderbypublishtimedesc";
if($countlimit!
=0){
$sql=$sql."limit$countlimit";
}
//echo$sql;
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
//显示置顶新闻若缺省参数,则显示所有的推荐新闻,否则显示指定条数的置顶新闻
functionfindTopNews($countlimit=0){
$sql="select*from`tbl_news`where`istop`=1orderbypublishtimedesc";
if($countlimit!
=0){
$sql=$sql."limit$countlimit";
}
$link=get_connect();
//echo$sql;
$rs=execQuery($sql,$link);
return$rs;
}
///////////////////////////////////////
//加入分页后的新闻查询函数
//////////////////////////////////////
/**
获取全部新闻分页后的最大页码
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionmaxpage_findNews($pagesize=10){
$link=get_connect();
$sql="selectcount(*)asnumfrom`tbl_news`orderby`publishtime`desc";
$rs=execQuery($sql,$link);
$count=$rs[0];
//取出查询结果中的num列的值
$count=$count['num'];
//取得最大页码值
$max_page=ceil($count/$pagesize);
return$max_page;
}
/**
分页查询所有新闻信息,按照发布时间倒序
*@paramint$page当前page值
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionfindNews_page($page,$pagesize=10){
$max_page=maxpage_findNews($pagesize);
//拼接查询语句并执行,获取查询数据
$lim=($page-1)*$pagesize;
$sql="select*from`tbl_news`orderby`publishtime`desclimit$lim,$pagesize";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
/**
获取分类新闻查询分页后的最大页码
*@paramint$classid新闻类别编号
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionmaxpage_findNewsByClassid($classid,$pagesize=10){
$link=get_connect();
$sql="selectcount(*)asnumfrom`tbl_news`where`classid`=$classidorderby`publishtime`desc";
$rs=execQuery($sql,$link);
$count=$rs[0];
//取出查询结果中的num列的值
$count=$count['num'];
//取得最大页码值
$max_page=ceil($count/$pagesize);
return$max_page;
}
/**
分页查询选定类别的新闻信息,按照发布时间倒序
*@paramint$classid新闻类别编号
*@paramint$page当前page值
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionfindNewsByClassid_page($classid,$page,$pagesize=10){
$max_page=maxpage_findNewsByClassid($pagesize);
//拼接查询语句并执行,获取查询数据
$lim=($page-1)*$pagesize;
$sql="select*from`tbl_news`where`classid`=$classidorderby`publishtime`desclimit$lim,$pagesize";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
/**
获取模糊新闻查询分页后的最大页码
*@paramstring$keyword查询内容
*@paramstring$search_field查询字段
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionmaxpage_findNewsByName($keyword,$search_field="all",$pagesize=10){
$link=get_connect();
if($search_field=="all"){
$sql="selectcount(*)asnumfrom`tbl_news`where`title`like'%$keyword%'or`content`like'%$keyword%'orderby`publishtime`desc";
}else{
$sql="selectcount(*)asnumfrom`tbl_news`where`$search_field`like'%$keyword%'orderby`publishtime`desc";
}$rs=execQuery($sql,$link);
$count=$rs[0];
//取出查询结果中的num列的值
$count=$count['num'];
//取得最大页码值
$max_page=ceil($count/$pagesize);
return$max_page;
}
/**
分页查询选定模糊查询的新闻信息,按照发布时间倒序
*@paramstring$keyword查询内容
*@paramstring$search_field查询字号
*@paramint$page当前page值
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionfindNewsByName_page($keyword,$page,$search_field="all",$pagesize=10){
//取得最大页码值
$max_page=maxpage_findNewsByName($keyword,$search_field,$pagesize);
//拼接查询语句并执行,获取查询数据
$lim=($page-1)*$pagesize;
if($search_field=="all"){
$sql="select*from`tbl_news`where`title`like'%$keyword%'or`content`like'%$keyword%'orderby`publishtime`desclimit$lim,$pagesize";
}else{
$sql="select*from`tbl_news`where`$search_field`like'%$keyword%'orderby`publishtime`desclimit$lim,$pagesize";
}
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
/**
获取置顶新闻分页后的最大页码
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionmaxpage_findRecommendNews($pagesize=10){
$link=get_connect();
$sql="selectcount(*)asnumfrom`tbl_news`whereistop=1orderby`publishtime`desc";
$rs=execQuery($sql,$link);
$count=$rs[0];
//取出查询结果中的num列的值
$count=$count['num'];
//取得最大页码值
$max_page=ceil($count/$pagesize);
return$max_page;
}
/**
分页查询置顶新闻信息,按照发布时间倒序
*@paramint$page当前page值
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionfindRecommendNews_page($page,$pagesize=10){
$max_page=maxpage_findNews($pagesize);
//拼接查询语句并执行,获取查询数据
$lim=($page-1)*$pagesize;
$sql="select*from`tbl_news`whereistop=1orderby`publishtime`desclimit$lim,$pagesize";
$link=get_connect();
$rs=execQuery($sql,$link);
return$rs;
}
/**
获取热点新闻分页后的最大页码
*@paramint$pagesize每页显示最大记录数默认为10条记录
*/
functionmaxpage_findHotNews($pagesize=10){
$link=get_connect();
$sql="selectcount(*)asnumfrom`tbl_news`whereishot=1orderby`publishtime`desc";
$rs=execQuery($sql,$link);
$count=$rs[0];
//取出查询结果中的num列的值
$count=$count['num'];
//取得最大页码值
$max_page=ceil($count/$pagesize);
return$max_page;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案