joomla5.1表结构关系一:文章管理涉及表之间的关系

项目中通过采集工具采集了一批数据,直接通过SQL语句导入到表中后,文章管理中并没有显示,然后研究了一下文章管理的查询条件,发现了表之间的关联。
1,文章管理页面列表的查询条件如何查询?如何分析?
通过手册上找到了输出执行sql的语句写法:

        //       $db   = $this->getDatabase();
        //       var_dump($db->replacePrefix( (string) $db->getQuery()) );//调试当前正在执行的查询语句
        //       die();

这个加在什么地方呢?
在这里插入图片描述
它的网址是:http://bwg.home.com:8080/administrator/index.php?option=com_content&view=articles
administrator
com_content
articles
根据这三个参数名称,找到页面获取到数据的地方,不知道如何找?
1,页面是后台页面,肯定要看administrator 文件夹;
2,com_content 是组件名称,肯定要找 administrator\components\com_content 文件夹
3,视图是 articles ,肯定要找相对应的model查看。administrator\components\com_content\src\Model\ArticlesModel.php
4,在ArticlesModel.php中找查方法,就是这个,查看getItems(),在这里插入上面的语句。
在这里插入图片描述
然后,刷新后台文章管理页面,得到查询语句:

string(2128) "SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`state`,`a`.`access`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`ordering`,`a`.`featured`,`a`.`language`,`a`.`hits`,`a`.`publish_up`,`a`.`publish_down`,`a`.`introtext`,`a`.`fulltext`,`a`.`note`,`a`.`images`,`a`.`metakey`,`a`.`metadesc`,`a`.`metadata`,`a`.`version`,`fp`.`featured_up`,`fp`.`featured_down`,`l`.`title` AS `language_title`,`l`.`image` AS `language_image`,`uc`.`name` AS `editor`,`ag`.`title` AS `access_level`,`c`.`title` AS `category_title`,`c`.`created_user_id` AS `category_uid`,`c`.`level` AS `category_level`,`c`.`published` AS `category_published`,`parent`.`title` AS `parent_category_title`,`parent`.`id` AS `parent_category_id`,`parent`.`created_user_id` AS `parent_category_uid`,`parent`.`level` AS `parent_category_level`,`ua`.`name` AS `author_name`,`wa`.`stage_id` AS `stage_id`,`ws`.`title` AS `stage_title`,`ws`.`workflow_id` AS `workflow_id`,`w`.`title` AS `workflow_title`,( SELECT COUNT(`asso1`.`id`) > 1 FROM `lzh_associations` AS `asso1` INNER JOIN `lzh_associations` AS `asso2` ON `asso1`.`key` = `asso2`.`key` WHERE `asso1`.`id` = `a`.`id` AND `asso1`.`context` = 'com_content.item') AS `association` FROM `lzh_content` AS `a` LEFT JOIN `lzh_languages` AS `l` ON `l`.`lang_code` = `a`.`language` LEFT JOIN `lzh_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `lzh_users` AS `uc` ON `uc`.`id` = `a`.`checked_out` LEFT JOIN `lzh_viewlevels` AS `ag` ON `ag`.`id` = `a`.`access` LEFT JOIN `lzh_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `lzh_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `lzh_users` AS `ua` ON `ua`.`id` = `a`.`created_by` INNER JOIN `lzh_workflow_associations` AS `wa` ON `wa`.`item_id` = `a`.`id` INNER JOIN `lzh_workflow_stages` AS `ws` ON `ws`.`id` = `wa`.`stage_id` INNER JOIN `lzh_workflows` AS `w` ON `w`.`id` = `ws`.`workflow_id` WHERE `wa`.`extension` = 'com_content.article' AND `a`.`state` IN (:preparedArray1,:preparedArray2) ORDER BY a.id desc LIMIT 20"

我们看到,主要涉及到的表有:
lzh_associations
lzh_content 文章内容主表,与lzh_assets表有主键关联关系。
lzh_languages 系统语言表
lzh_content_frontpage
lzh_viewlevels 查看权限
lzh_users 用户表
lzh_categories 分类表
lzh_workflow_associations 关联设置
lzh_workflow_stages
lzh_workflows
在这里插入图片描述
回到导入数据操作上,通过上面表关系,我们知道了, lzh_content 与 lzh_workflow_associations,lzh_assets 之前的关系。

通过后台文章管理创建一篇文章,在 lzh_content lzh_workflow_associations,lzh_assets 三张表中,数据关系是:
在这里插入图片描述
现在可以直接对这三张表数据进行插入操作了。

下面涉及到一些MYSQL语句也记录一下。
(1)自增
SET @var = 185;
UPDATE lzh_content SET asset_id=(@var := @var + 1) WHERE id>16

(2)字符连接
UPDATE lzh_assets SET NAME=CONCAT(‘com_content.article.’,NAME) WHERE id>177

(3)插入新记录
SET @var = 174;
INSERT INTO lzh_workflow_associations(item_id,stage_id,extension) VALUES((@var := @var + 1),1,'com_content.article');
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值