织梦{dede:sql}标签,怎么调用最新文章的标题?
这个简单的做就很简单,复杂的做就很复杂(不知道你有没有C#语法基础)
从简单的做起全部拖服务器端控件(vs2005 08 10 12 13)
1、Repeater循环控件
2、从网上下载分页插件(例如aspnetPage分页插件)
然后针对你的要求 给你写个通用的例子:
string sql = "select 你的表名 from where 1=1"
然后转成DataTable 赋值给 Repeater控件的idDataSource = 你转成DataTable后的dt
Repeater的idDataBind()
这样你就可以显示出你数据库相对应的表所有的数据了
如果你要搜索,那么在我上面的sql后面的在加上 “and 你的条件”
比如按你表中等级Level 取出Level小于30级的玩家信息 那么就是
sql = "select 你的表名 from where 1=1 and Level
接下来跟后面一样
关联两表,你要找到两表之间有关系的字段名也就是外键
搜索功能前面讲了
最近要做一个商品价格排序搜索,但是却没法使用[field:price/]来调用dede_addonshop里面的price字段。到论坛上发帖求助没人回应,只有自己琢磨,曾看到有人说修改advancedsearchphp里面的内容,添加一个addon,但是好像是错的,因为我打开那个文件,那一行本来就有addon,无奈只有自己从dede的类库中着手了。在硬着头皮读完代码之后,发现解决方法:修改include/arcsearchviewclassphp
第一处:将大约320行地方的代码:
if($this->ChannelType < 0 || $this->ChannelTypeid< 0){
if($this->ChannelType=="0") $id=$this->ChannelTypeid;
else $id=$this->ChannelType;
$row =$this->dsql->GetOne("Select addtable From `dede_channeltype` Where id=$id");
$addtable = trim($row['addtable']);
$this->AddTable=$addtable;
}else{
$this->AddTable="dede_archives";
}
改为:
if($this->ChannelType=="0") $id=$this->ChannelTypeid;
else $id=$this->ChannelType;
$row =$this->dsql->GetOne("Select addtable From `dede_channeltype` Where id=$id");
$addtable = trim($row['addtable']);
if($this->ChannelType < 0 || $this->ChannelTypeid< 0){
$this->AddTable=$addtable;
$this->AddonTable='';
}else{
$this->AddTable="dede_archives";
$this->AddonTable=$addtable;
}
第二处:将大约500行的地方的代码:
$query = "Select arc,acttypedir,acttypename,actisdefault,actdefaultname,actnamerule,
actnamerule2,actispart,actmoresite,actsiteurl,actsitepath
from `{$this->AddTable}` arc left join `dede_arctype` act on arctypeid=actid
where {$this->AddSql} $ordersql limit $limitstart,$row";
改为:
if (!empty($this->AddonTable)) {
$this->AddonTable="left join `{$this->AddonTable}` addon on addontypeid=arctypeid";
}else {
$this->AddonTable='';
}
$query = "Select arc,acttypedir,acttypename,actisdefault,actdefaultname,actnamerule,
actnamerule2,actispart,actmoresite,actsiteurl,actsitepath,addon
from `{$this->AddTable}` arc left join `dede_arctype` act on arctypeid=actid {$this->AddonTable}
where {$this->AddSql} $ordersql limit $limitstart,$row";
好了,可以在searchhtm中使用[field:price/]了,只要你的模型有附加表,你就可以使用表里的任何字段
另外注意:如果附加表里有字段名和主表字段名一样的,使用[field:xxxx/]的结果是未定义的(猜是这样)。
{dede:sql sql='select title(标题) From dede_archives where typeid=1(栏目id)'}
<a href="/plus/viewphpaid=[field:id/]">[field:title/]</a>
{/dede:sql}
dede织梦如何添加“自定义属性”标签“症状”1、进入后台——系统——SQL命令行工具——运行SQL命令行,添加arcatt表字段:insert into`dede_arcatt`(sortid,att,attname) values(9,‘d‘,‘症状‘)2、添加archives表字段:alter table `dede_archives` modify `flag` set (‘h‘,‘c‘,‘p‘,‘f‘,‘s‘,‘j‘,‘a‘,‘b‘,‘d‘) default NULL 看着加粗的SQL指令,顾名思义是先在表里插入新记录(要添加的属性),然后修改另一个关联表的flag字段以添加标签d。没错,就是这样简单,你已经成功添加了新的属性并可以模板调用了。当然你也可以用phpmyadmin数据库工具傻瓜式添加属性。需要说明的是: 代码第1行:values(9,‘d‘,‘新自定义属性‘) 是根据我们需要自行定义的,其中9是sortid的值,是不可重复的,也就是每添加一个自定义属性,sortid的值就应该递增到 10,11,12,以此类推!d是alt的值,是自定义属性的标记,与已存在的标记符号不能重复,“症状”是中文名称,是方便人们直观地勒戒自定义 属性的含义的,可以根据需要改为其他名字,不影响调用。代码第2行:set (‘c‘,‘h‘,‘p‘,‘f‘,‘s‘,‘j‘,‘a‘,‘b‘,‘d‘),括号中的字母对应已存在的标记符号和您需要添加的标记符号,并按顺序录入,不得改变先后顺序。例如,d排序第9位,则对应第一行代码中添加的自定义属性““评论d”。2、后台——模板——默认模板管理——indexhtm在“indexhtm”中进行修改,在需要调用症状的地方添加代码“{dede:arclist flag=‘d‘ limit=‘0,1‘ infolen=‘230‘}”3、添加文档,在自定义属性中将“新自定义属性”勾选,就可实现,勾选的文档出现在首页,为勾选出现在内页。删除自定义属性:
DELETE FROM dede_arcatt WHERE sortid=‘9‘
dedecms:织梦文章如何添加“自定义属性”标签(sql命令行工具)
标签:
0条评论