承接上文完善广告位插件,现在完善插件安装的时候创建数据表ad和ad_category表。
需要创建什么表?
表中需要哪些字段?
第一个问题:为了实现分类所以需要创建广告位分类表ad_category,那我们需要再创建一个广告位表ad。
第二个问题:基于第一个问题,分类表需要字段:title:分类名称,pid:分类父级ID,status:状态,create_time:添加时间。
广告位表:title:广告位名称,url:跳转连接,pid:分类ID,cover_id:广告位图片,status:广告位状态,create_time:添加时间。
通过以上字段需求,写出一些SQL语句:
ad_category表SQL:
CREATE TABLE IF NOT EXISTS `{$table_ad_category}` (
`id` int(10) unsigned NOT NULL,
`title` varchar(50) NOT NULL,
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级ID',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`status` tinyint(4) DEFAULT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ad表SQL:
CREATE TABLE IF NOT EXISTS `{$table_ad}` (
`id` int(10) unsigned NOT NULL,
`title` varchar(50) NOT NULL,
`cover_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '图片ID',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转连接',
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级分类ID',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`status` tinyint(4) DEFAULT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
插件入口文件中安装函数,和卸载函数:
public function install(){
$db_prefix = C('DB_PREFIX');
$table_ad_category = "{$db_prefix}ad_category";
$table_ad = "{$db_prefix}ad";
$sql_category=<<<SQL
CREATE TABLE IF NOT EXISTS `{$table_ad_category}` (
`id` int(10) unsigned NOT NULL,
`title` varchar(50) NOT NULL,
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级ID',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`status` tinyint(4) DEFAULT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SQL;
D()->execute($sql_category);
if(count(M()->query("SHOW TABLES LIKE '{$table_ad_category}'")) != 1){
session('addons_install_error', ',ad_category表未创建成功,请手动检查插件中的sql,修复后重新安装');
return false;
}
$sql_ad=<<<SQL
CREATE TABLE IF NOT EXISTS `{$table_ad}` (
`id` int(10) unsigned NOT NULL,
`title` varchar(50) NOT NULL,
`cover_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '图片ID',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转连接',
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级分类ID',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`status` tinyint(4) DEFAULT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SQL;
D()->execute($sql_ad);
if(count(M()->query("SHOW TABLES LIKE '{$table_ad}'")) != 1){
session('addons_install_error', ',ad表未创建成功,请手动检查插件中的sql,修复后重新安装');
return false;
}
return true;
}
public function uninstall(){
$db_prefix = C('DB_PREFIX');
$sql_category = "DROP TABLE IF EXISTS `{$db_prefix}ad_category`;";
D()->execute($sql_category);
$sql_ad = "DROP TABLE IF EXISTS `{$db_prefix}ad`;";
D()->execute($sql_ad);
return true;
}
进入后台插件管理找到广告位插件,点击安装,安装成功。
Navicat For MySql 数据库管理中找到数据库,打开看下表是否创建成功。
好啦!数据库表创建成功了,后续完善完善后台广告位插件的功能,现在是空的,看图。
发表评论 取消回复