• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

DedeCMS二次开发(三)搜索页面、数据库操作

Mr.Lee 由 Mr.Lee
2018年5月20日
在 DedeCMS, 二次开发
0
DedeCMS二次开发(三)搜索页面、数据库操作
0
分享
1
浏览


dedecms第三天

完成搜索页面

要实现的效果:

显示搜索页面

a 在plus目录中添加sou.php文件,用于加载sou.html文件


b访问之后页面输出的效果如下所示

c 引入每一个dede中的公共文件

d 将模板页面改名字为sou.html然后引入到sou.php文件中

在sou.php中进行引入

引入之后的页面:

e 修改sou.html中的css文件路径和js路径

如果直接使用dede中的标签是不被解析的,因为我们现在直接访问html页面,没有给他生成静态的页面,所以他不能解析dede的标签.

在这里我们直接使用原生的php标签进行引入即可

进行访问查看效果:

dede里面的数据库操作

数据库的初始化操作

默认情况下数据核心类是在include/commen.inc.php文件中引入了数据库核心类文件。

dede默认提供了三种操作数据的核心类

我们默认的数据库操作类是dedesql.class.php文件

找到dedesql.class.php文件

查看dedesql.class.php中是如何实例化和引用相关的数据库类的

有上面可知,我们直接使用$dsql这个实例化的类即可引用

查询操作

查询多条记录的方法

$dsql->Execute(“me”,$sql语句) 类似于$res=mysql_query($sql语句)

注释:me的意思是将sql执行完成之后的结果赋给$me

取出数据的方法:

$dsql->GetArray(“me”);//该方法取出一次数据,游标就会向下移动一次

上面的这个方法的功能就类似于$row=mysql_fetch_assoc($res)

案例:

$sql=”select * from goods”;

$dsql->Execute(“abc”,$sql);

取出数据:

$data=[];

While($row=$dsql->GetArray(“abc”)){

$data[]=$row;

}

取出单行数据的方式:

$dsql->GetOne($sql);//该方法只返回一行数据信息

增删改的操作

如果要想对表中的数据进行增删改操作,并且不需要关注影响记录条数

$dsql->ExecuteNoneQuery($sql语句)

如果想要对表中的数据进行增删改操作,同时也需要关注影响记录条数

$dsql-> ExecuteNoneQuery2($sql语句)

展示出搜索页面的头部

需求:取出搜索页面的导航栏部分.

分析:1 导航栏的数据保存在dede_arctype表中.

2 只需要取出其中的电影模型下面的顶级导航栏.

取出数据

思路就是由于要取出的是栏目顶级导航,所以在查询时候要指定reid=0 并且要确定的就是我们是从dede_arctype表中取得数据信息

打印的数据效果如夏所示:

在sou.html页面中循环输出栏目数据

最终的输出效果如下所示:

多学一招:

这里要拼接处typeurl的地址:在arclist中找到这个标签即可

取出电影数据

页面的效果图如下所示:

分析:

该数据涉及到了附加表中的数据信息(语言、评分值)还有就是内容主表中的电影名称信息以及我们要进行处理的就是电影的对应url地址(arcurl)

取出电影数据

代码如下

多学一招:arcurl的拼接需要在arclib.php中获取:

完成电影数据的遍历


最终的效果如下所示:

在搜索页面显示年代数据

分析:

1、 首先每一个年代数据都要有一个url地址,

2、 需要有一个是否处于选中状态判断,

3、 同时也要考虑把其他条件参数给带上

4、 由于全部字样也需要考虑是否处于选中状态,所以也要封装到数组中来

思路:可以考虑将这个年代数据给封装成一个数组

$ndData=array(

array(

‘name’=>2016,

‘url’=>用来跳转的url地址 (diqu=欧美& niandai=2016)

‘selected’=>判断是否处于选中状态

),

array(

‘name’=>2015,

‘url’=>用来跳转的url地址(niandai=2015&diqu=欧美)

‘selected’=>判断是否处于选中状态

),

array(

‘name’=>’全部’,

‘url’=>用来跳转的url地址(niandai=2015&diqu=欧美)

‘selected’=>判断是否处于选中状态

)

)

取出年代数据

if($_GET[‘niandai’])

$sel = ”;

else

$sel = ‘class=”all”‘;

$nianData[] = array(

‘name’=>”全部”,

‘url’=>getUrl(),

‘selected’=>$sel

);

$sql = “select distinct niandai from dede_addonmovie”;

$dsql->Execute(‘nian’,$sql);

while($row = $dsql->GetArray(‘nian’)){

if($_GET[‘niandai’]==$row[‘niandai’]){

$sel = ‘class=”all”‘;

}else

$sel = ”;

$nianData[] = array(

‘name’=>$row[‘niandai’],

‘url’=>’?niandai=’.$row[‘niandai’].getUrl(‘niandai’),

‘selected’=>$sel

);

}

url的拼接函数如下所示:

function getUrl($default=”){

$str = ”;

if($default !=’niandai’){

if($_GET[‘niandai’]){

$str .= ‘&niandai=’.$_GET[‘niandai’];

}

}

if($default!=’type’){

if($_GET[‘type’])

$str .= ‘&type=’.$_GET[‘type’];

}

if($default!=’diqu’){

if($_GET[‘diqu’])

$str .= ‘&diqu=’.$_GET[‘diqu’];

}

}

完成年代数据遍历

最终效果

在搜索页面显示地区数据

取出数据的代码

完成地区数据的遍历


在搜索页面显示出类型数据

取出数据的代码


最终的url函数如下所示:

完成类型数据遍历

最终效果:

最终的效果如下所示:

把地址栏里面的条件添加到SQL语句中

最终效果:

把查询的条件显示出来

分析:由于url地址栏中的查询参数信息,在这个位置都要显示出来,那么我们可以在处理查询条件的位置来同步我们的数组(就是用来在页面中遍历查询条件的)

$search=array(

array(

‘name’=>查询条件的名称,

‘url’=>对应url地址

)

);

在拼接SQL语句的位置封装条件数组

$searche = array();

$where = ”;

if($_GET[‘niandai’]){

$where .=”and addf.niandai='{$_GET[‘niandai’]}'”;

$searche[] = array(

‘name’=>$_GET[‘niadai’],

‘url’=>getUrl()

);

}

if($_GET[‘diqu’]){

$where .=”and addf.diqu='{$_GET[‘diqu’]}'”;

$searche[]= array(

‘name’=>$_GET[‘diqu’],

‘url’=>getUrl()

);

}

if($_GET[‘type’]){

$where .=”and cha.typename='{$_GET[‘type’]}'”;

$searche[] =array(

‘name’=>$_GET[‘type’],

‘url’=>getUrl()

);

}

完成条件遍历

最终效果:

实现搜索功能

修改表单

把条件给拼接到SQL语句中

最终效果:

标签: 搜索页面数据库操作
上一篇文章

手机直播 搭建服务器、推流管理、实现直播、创建直播APP

下一篇文章

DedeCMS二次开发(二)完成电影评分榜、输出栏目数据、制作头部文件、制作栏目模板页

下一篇文章
DedeCMS二次开发(三)搜索页面、数据库操作

DedeCMS二次开发(二)完成电影评分榜、输出栏目数据、制作头部文件、制作栏目模板页

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3