在当今信息化时代,网站建设已成为企业、个人展示形象、拓展业务的重要途径。DedeCMS作为一款功能强大的内容管理系统,深受广大用户的喜爱。在使用DedeCMS后台进行数据管理时,如何高效地进行SQL查找,成为许多用户关心的问题。本文将针对DedeCMS后台SQL查找技巧进行详细讲解,帮助大家轻松应对数据查询难题。
一、DedeCMS后台SQL查找基础
1. 了解DedeCMS数据库结构
在开始学习DedeCMS后台SQL查找之前,首先需要了解DedeCMS的数据库结构。DedeCMS采用MySQL数据库,主要包含以下表:
- arcmember:用户信息表
- archives:文章信息表
- aarc:表
- channel:频道信息表
- special:专题信息表
- admin_user:管理员信息表
- admin_group:管理员组信息表
- admin_log:管理员操作日志表
- …(其他相关表)
2. 熟悉DedeCMS后台SQL查询语法
DedeCMS后台SQL查询语法与MySQL数据库查询语法基本一致,主要包括以下几种:
- SELECT:查询数据
- FROM:指定查询的表
- WHERE:条件过滤
- GROUP BY:分组
- ORDER BY:排序
- LIMIT:限制查询结果数量
二、DedeCMS后台SQL查找技巧
1. 使用SELECT语句查询数据
SELECT语句用于查询表中的数据,以下是几个常用查询示例:
– 查询所有文章标题:
“`sql
SELECT title FROM archives;
“`
– 查询特定:
“`sql
SELECT content FROM aarc WHERE aid = 1;
“`
2. 使用WHERE语句进行条件过滤
WHERE语句用于对查询结果进行条件过滤,以下是一些常用条件:
– 模糊查询:
“`sql
SELECT title FROM archives WHERE title LIKE ‘%关键词%’;
“`
– 范围查询:
“`sql
SELECT title FROM archives WHERE pubdate BETWEEN ‘2021-01-01’ AND ‘2021-12-31’;
“`
– 多条件查询:
“`sql
SELECT title FROM archives WHERE title LIKE ‘%关键词%’ AND pubdate BETWEEN ‘2021-01-01’ AND ‘2021-12-31’;
“`
3. 使用GROUP BY和ORDER BY进行分组和排序
GROUP BY语句用于对查询结果进行分组,ORDER BY语句用于对查询结果进行排序。
– 分组查询:
“`sql
SELECT COUNT(*) AS num, channelid FROM archives GROUP BY channelid;
“`
– 排序查询:
“`sql
SELECT title FROM archives ORDER BY pubdate DESC;
“`
4. 使用LIMIT语句限制查询结果数量
LIMIT语句用于限制查询结果数量,以下是一个示例:
“`sql
SELECT title FROM archives LIMIT 0, 10;
“`
三、DedeCMS后台SQL查找注意事项
1. 注意SQL语句的执行效率
在编写SQL语句时,要注意优化查询效率,避免使用复杂的查询语句和大量数据。
2. 避免SQL注入攻击
在使用DedeCMS后台进行SQL查找时,要注意防范SQL注入攻击,避免将用户输入直接拼接到SQL语句中。
3. 备份数据库
在进行SQL查找操作之前,建议备份数据库,以防数据丢失。
DedeCMS后台SQL查找是网站数据管理的重要环节,掌握相关技巧有助于提高工作效率。本文从DedeCMS后台SQL查找基础、查找技巧、注意事项等方面进行了详细讲解,希望对大家有所帮助。在实际操作中,还需不断积累经验,提高SQL查找能力。
dedecms5.7伪静态怎么设置
dede5.7伪静态设置方法。
dede5.7伪静态设置七步法:
第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;
注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静
态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载
Rewrite组件,然后配置httpd.ini文件。
第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:
将所有文档设置为“仅动态浏览”:
update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”:
update dede_arctype set isdefault=-1
第三步、列表页、文章页伪静态修改
打开/include/helpers/channelunit.helper.php。
(1)查找:
//动态文章
if($cfg_rewrite=='Y')
{
return$GLOBALS[“cfg_plus_dir”].”/view-“.$aid.'-1.html';
}
替换为
//动态文章
if($cfg_rewrite=='Y')
{
return”/DedeCMS/DedeCMS5.7-“.$aid.'-1.html';
}
意思是:将默认的/plus/view-1-1.html文章链接格式改为/DedeCMS/DedeCMS5.7-1-1.html。
(2)查找:
//动态
$reurl=$GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;
替换为
//动态
$reurl=”/category/list-“.$typeid.”.html”;
意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为/dedecms/list-1.html形式。
第四步、列表分页伪静态修改
打开/include/arc.listview.class.php
查找:
$plist= str_replace('.php?tid=','-',$plist);
替换为
$plist= str_replace('plus/list.php?tid=',‘DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/list.php?tid=替换成RMB/list-;
意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html。
第五步、文章分页伪静态
打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:
查找:
$PageList= str_replace(“plus/view.php?tid=”,”DedeCMS/DedeCMS5.7-“,$PageList);
替换为
$plist= str_replace('plus/view.php?tid=',’DedeCMS/DedeCMS5.7-',$plist);
将默认的plus/view.php?tid=替换成RMB/huilv-;
意思是:将默认的文章分页链接格式plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html
第六步、TAG标签伪静态
DedeCms默认的TAG标签URL,形如/tags.php?/dedecms模板/,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板/,是不是好看多了。
下面我们来改一下,打开/include/taglib/tag.lib.php:
查找:
$row['link']=$cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
替换为
$row['link']=$cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;
这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!
第七步、httpd.ini伪静态规则:
[ISAPI_Rewrite]
# 3600= 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/RMB/list-([0-9]+)\.html$1/plus/list\.php\?tid=$2 [I]
RewriteRule ^(.*)/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^(.*)/RMB/huilv-([0-9]+)-([0-9]+)\.html$1/plus/view\.php\?arcID=$2&pageno=$3 [I]
RewriteRule ^(.*)/(.*)_(.*)_([0-9]+)\.html$1/huilv/?from=$2&to=$3&num=$4 [I]
RewriteRule ^(.*)/tags\.html$1/tags\.php [I]
RewriteRule ^(.*)/tags/(.*)(?:(\?.*))*$1/tags\.php\?\/$2 [I]
RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))*$1/tags\.php\?\/$2\/ [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))*$1/tags\.php\?\/$2\/$3 [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))*$1/tags\.php\?\/$2\/$3\/ [I]
将上面代码保存为:httpd.ini上传到网站的根目录。
如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。
dede怎么实现伪静态呢dedecms伪静态
如何将dedecms改为伪静态页面?
设置DEDE5.7伪静态的七步法:
第一步:后台-系统参数-核心设置-使用伪静态:选择是;
注:无论您的网站空是否支持伪静态,您都可以在空中联系IDC提供商。如果是自己的服务器,处理起来会比较容易。自己动手,丰衣足食。一般来说,空支持伪静态。Apache服务器伪静态相对简单,只需在。htaccess文件;要实现IIS服务器的伪静态,需要加载重写组件,然后配置httpd.ini文件。
第二步。如果生成的静态列或文章HTML已经存在于您的网站中,那么只需在后台-系统-SQL命令行工具中执行以下语句:
将所有文档设置为“仅动态浏览”:
updatedede_archivessetismake=-1将所有栏设置为“使用动态页面”:
updatedede_arctypesetisdefault=-1第三步,列表页,文章页伪静态修改。
打开/include/helpers/channelunit.helper.PHP
(1)查找:
if($cfg_rewrite==Y)
{
return$GLOBALS[cfg_plus_dir.$援助。-1.html;
}替换为
if($cfg_rewrite==Y)
{
return.$援助。-1.html;
}含义:将默认的/plus/view-1-1.html文章链接格式改为//DedeCMS/DedeCMS5.7-1-1.html1-1.html。
(2)查找:
$reurl=$GLOBALS[cfg_phpurl]./list.php?tid=.$typeid;替换为:
$reurl=/category/list-.$typeid..html;会默认频道或列表页面URL/plus//list.php吗?Tid=1更改为/dedecms/list-1.html形式。
步骤4:列表分页的伪静态修改。
打开/include/arc.listview.class.PHP。
查找:
$plist=str_replace(.php?tid=,-,$plist);用?替换
$plist=str_replace(plus/list.php?tid=,‘DedeCMS/DedeCMS5.7-,$plist);设置默认的plus/list.php?Tid=替换为人民币/列表-;
会默认列表分页链接格式plus/list.php吗?Tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.htmlx-x-x.html。
第五步,文章分页伪静态。
打开/include/arc.archives.class.PHP,找到GetPagebreakDM()函数的结尾,得到动态分页列表:
查找:
$PageList=str_replace(plus/view.php?tid=,DedeCMS/DedeCMS5.7-,$PageList);用?替换
$plist=str_replace(plus/view.php?tid=,’DedeCMS/DedeCMS5.7-,$plist);会默认plus/view.php吗?Tid=换成人民币/吕慧-;
含义:链接默认文章分页格式plus/view.php?Tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.htmlx-x-x.html。
步骤6:标记伪静态
DedeCms默认标签tagURL,比如/tags.php?/dedecmstemplate/,你不觉得有个问号太酷了吗?我们改成/tags/dedecmstemplate/,不是好很多吗?
我们改一下,打开/include/taglib/tag.lib.php:
查找:
$row[link]=$cfg_cmsurl./tags.php?/.urlencode($row[keyword])./;用?替换
$row[link]=$cfg_cmsurl./tags/.urlencode($row[keyword])./;所以修改一下,上传到你的网站,记得备份原网站!!
第七,httpd.ini伪静态规则:
[ISAPI_Rewrite]
#3600=1小时
高速时钟速率3600
重复限制32
重写者^(.*)/RMB/list-([0-9])\。html/plus/list\。php\?tid=[I]
重写者^(.*)/RMB/list-([0-9])-([0-9])-([0-9])\。html/plus/list\。php\?tid=$2&TotalResult=$3&PageNo=[I]
重写者^(.*)/人民币/吕慧-([0-9])-([0-9])\。html/plus/view\php\?arcID=$2&pageno=[I]
重写者^(.*)/(.*)_(.*)_([0-9])\.html$1/吕慧/?from=$2&to=$3&num=[I]
重写者^(.*)/tags\。html/tags\。php[I]
重写者^(.*)/tags/(。*)(?:(\?.*))*/tags\。php\?\/[I]
重写者^(.*)/tags/(。*)\/(?:(\?.*))*/tags\。php\?\/\/[I]
重写者^(.*)/tags/(。*)\/([0-9])(?:(\?.*))*/tags\。php\?\/\/[I]
重写者^(.*)/tags/(。*)\/([0-9])\/(?:(\?.*))*/tags\。php\?\/\/\/[I]将上述代码另存为:httpd.ini,上传到网站根目录。
如果没有特殊需求,建议按官方默认的静态页面生成方式浏览。
织梦网站伪静态是用apche还是nginx好呢?
Apache资格更老一些,比Nginx出来的早,在处理程序方面,Apache我个人认为更好一些!伪静态的作用是优化收录更好,浏览更人性化,例如伪静态的URL还可以被记住,动态的url根本没法记住!当然我说的是很少的一部分。
dedecms数据库,用php调用sql最新文章
这是我之前写的一个类,和你的需求基本一样,你拿去自己改改吧
<?php
$GLOBALS['web_channel_dir']='dir/inc';
//设置系统根路径
define('WEB_ROOT',$GLOBALS['web_channel_dir']? substr(dirname(__FILE__), 0,- strlen($GLOBALS['web_channel_dir'])): dirname(__FILE__).'/');
abstract class BaseDataQuery
{
/*
*构造方法
*/
function __construct($pid,$cid,$xid)
{
if(!file_exists(WEB_ROOT.'data/common.inc.php'))
{
echo”配置错误”;
exit();
}else{
require_once WEB_ROOT.'data/common.inc.php';
}
$this->cfg_dbhost=$cfg_dbhost;
$this->cfg_dbname=$cfg_dbname;
$this->cfg_dbuser=$cfg_dbuser;
$this->cfg_dbpwd=$cfg_dbpwd;
$this->cfg_dbprefix=$cfg_dbprefix;
$this->cfg_db_language=$cfg_db_language;
$this->link=$this->connect();
}
function connect()
{
//global$link,$host,$dbuser,$dbpasswd,$db;
$link= mysql_connect($this->cfg_dbhost,$this->cfg_dbuser,$this->cfg_dbpwd) or
die(“Could not connect:”. mysql_error().””.$sql);
mysql_select_db($this->cfg_dbname);
mysql_query(“SET NAMES UTF8”);//设置数据库的要查询结果的字符集
return$link;
}
function Query($sql)
{
if(!$this->link)
$this->link=$this->connect();
$result= mysql_query($sql,$this->link) or
die(“Could not query:”. mysql_error().””.$sql);
return$result;
}
function getAll($sql)
{
$res=$this->Query($sql);
if($res!== false)
{
$arr= array();
while($row= mysql_fetch_assoc($res))
{
$arr[]=$row;
}
return$arr;
}
else
{
return false;
}
}
function getAll_cache($sql)
{
$res=$this->Query($sql);
if($res!== false)
{
$arr= array();
while($row= mysql_fetch_assoc($res))
{
$arr[]=$row;
}
return$arr;
}
else
{
return false;
}
}
function getOne($sql,$limited= false)
{
if($limited== true)
{
$sql= trim($sql.' LIMIT 1');
}
$res=$this->Query($sql);
if($res!== false)
{
$row= mysql_fetch_row($res);
if($row!== false)
{
return$row[0];
}
else
{
return'';
}
}
else
{
return false;
}
}
/**
*得到子栏目ID
*$reid上线id
*/
function get_child($reid)
{
$child_sql=”SELECT id FROM dede_arctype WHERE reid=”.$reid;
$res=$this->getAll($child_sql);
if(empty($res)){
return$reid;
}
foreach($res AS$row)
{
if(!empty($row['id']))
{
$arr[]=$row['id'];
$this->get_child($row['id']);
}
}
$str= join(“,”,$arr);
return$str;
}
/**
*得到子栏目名称与id
*$reid上级id
*/
function get_child_name($reid)
{
$child_sql=”SELECT id,typename,reid FROM dede_arctype WHERE reid=”.$reid;
$res=$this->getAll($child_sql);
return$res;
}
function get_ic_name($id)
{
$child_sql=”SELECT typename FROM dede_arctype WHERE id=”.$id;
$res=$this->getAll($child_sql);
return$res;
}
/*
*数据查询
*$flag(需要查询的标记例头条[h]推荐[c]幻灯[f]特荐[a]滚动[s]加粗[b]图片[p]跳转[j])
*$typeid需要查询的栏目id(22,23,24,25)
*$len需要查询的数据长度如果$len是数据就是limit 1,100形式如果是字符就是limit 100如果$len不存就是不限止条数
**/
function query_data($queryInfo)
{
$queryInfo['flag']?$flag=$queryInfo['flag']:$flag= false;
$typeid=$queryInfo['typeid'];
$queryInfo['len']?$len=$queryInfo['len']:$len= false;
$field=$queryInfo['field'];
$queryInfo['order']?$order=$queryInfo['order']:$order= false;
$queryInfo['channel']?$channel=$queryInfo['channel']:$channel= false;
$queryInfo['where']?$where=” AND”.$queryInfo['where']:$where=””;
$queryInfo['typeid2']?$typeid2=”AND typeid2 in(“.$queryInfo['typeid2'].”)”:$typeid2=””;
$queryInfo['table']?$table=$queryInfo['table']:$table=”dede_archives”;
//定义查询数据标识(头条,图片,推荐)
if($flag)
{
$flag=”and find_in_set('$flag',flag)”;
}else{
$flag=””;
}
//查询条数
if($len)
{
if(is_array($len))
{
$len=”limit”.$len[0].”,”.$len[1];
}else{
$len=”limit 0,”.$len;
}
}else{
$len=””;
}
//定义排序条件
if(isset($order)&& is_array($order))
{
$orderarr= array();
foreach($order as$key=>$value)
{
$orderarr[]=$key.””.$value;
}
$orderstr= join(“,”,$orderarr);
}
elseif($order=='rand')
{
$orderstr=” rand(),id desc”;
}
elseif($order!='')
{
$orderstr=$order;
}
else
{
$orderstr=”pubdate desc”;
//$orderstr=$order;
}
//定义查询模型
if($channel)
{
$channel=”AND channel=”.$channel;
}elseif($channel==”null”){
$channel=””;
}
else
{
$channel=”AND channel= 1″;
}
//定义查询字段
if($field)
{
if(is_array($field))
{
$field= join(“,”,$field);
}
$sql=”select”.$field.” from”.$table.” WHERE arcrank>-1 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;
}else{
//根剧栏目查询新闻
$sql=”select id,title,pubdate from”.$table.” WHERE arcrank>-2 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;
//echo”<br/>”;
}
if($queryInfo['debug']){
$debugstr=”this is Debug:[$sql ]”;
return$debugstr;
}
$result=$this->getAll($sql);
return$result;
}
}