【问题标题】:SQL Query Needed for Joomla 1.5Joomla 1.5 需要 SQL 查询
【发布时间】:2013-08-21 10:07:47
【问题描述】:

我不确定这是否可能,但我安装了 Joomla 1.5 并且我正在更新到 3.1.5 但问题是当前站点使用了一个插件,该插件使用每篇文章的关键参考来生成元页面标题,我需要从每篇文章(220+)中获取此信息并将其放在菜单项的参数下,因此我目前有以下内容;

文章

TABLE joscontent COLUMN id VALUE 39

TABLE joscontent COLUMN attribs VALUE:

show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_vote=
show_author=
show_create_date=
show_modify_date=
show_pdf_icon=
show_print_icon=
show_email_icon=
language=
keyref=Page Title Value is Currently Here
readmore=

菜单项

table      column   value
jos_menu   link     index.php?option=com_content&view=article&id=39
jos_menu   params   

show_noauth=
show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_author=
show_create_date=
show_modify_date=
show_item_navigation=
show_readmore=
show_vote=
show_icons=
show_pdf_icon=
show_print_icon=
show_email_icon=
show_hits=
feed_summary=
page_title=
show_page_title=1
pageclass_sfx=
menu_image=-1
secure=0

那么有没有一种方法可以提交一个 SQL 查询,该查询将从 attribs 列中获取 keyref 值,并在文章 ID 与菜单链接中使用的 id 匹配的地方插入 params 列的 page_title 值,这将完成所有操作网站上的文章。

希望这是有道理的!

编辑此解决方案有效

update jos_menu jm
set params = (select concat('show_noauth=
show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_author=
show_create_date=
show_modify_date=
show_item_navigation=
show_readmore=
show_vote=
show_icons=
show_pdf_icon=
show_print_icon=
show_email_icon=
show_hits=
feed_summary=
page_title=',
replace(substr(attribs, locate('keyref=', attribs)+7), 'readmore=', ''),
' 
show_page_title=1
pageclass_sfx=
menu_image=-1
secure=0 ')
from jos_content jc
where jm.link = concat('index.php?option=com_content&view=article&id=', jc.id))
where Instr(jm.link, 'index.php?option=com_content&view=article&id=') 

【问题讨论】:

    标签: sql joomla


    【解决方案1】:

    您可能会发现一条 SQL 语句可以通过使用一些棘手的正则表达式来完成此操作。但我真的建议你用 PHP 编写一个脚本,循环遍历所有记录并完成这项工作。这将为您提供更多控制权和进行一些错误检查的能力。

    【讨论】:

    • 谢谢,我今天很着急,所以我雇了一个 elance 的人来做这件事,他想出了这个似乎效果很好的方法 - 另一个供应商建议使用 php,但我没有时间;
    • update jos_menu jm set params = (select concat('show_noauth= show_title= link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_modify_date= show_item_navigation= show_readmore= show_vote= show_icons= show_pdf_icon = show_print_icon= show_email_icon= show_hits= feed_summary= page_title=', replace(substr(attribs, locate('keyref=', attribs)+7), 'readmore=', ''), ' show_page_title=1 pageclass_sfx= menu_image=- 1 安全=0 ')
    • from jos_content jc where jm.link = concat('index.php?option=com_content&view=article&id=', jc.id)) where Instr(jm.link, 'index.php?option= com_content&view=article&id=')
    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 2012-06-07
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 2011-04-03
    • 2021-07-22
    • 2011-01-15
    相关资源
    最近更新 更多