请问spModel有没有取表字段注释的方法
发布于:2022-01-17 09:50:54
#1 ghj386
我现在是通过这种方式取得表字段注释的:
//建立一个从INFORMATION_SCHEMA.COLUMNS里取得materials表的字段注释的sql语句
$rs_fname="SELECT COLUMN_COMMENT as ffname FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'materials'";
//借用findSql()来执行sql语句,得到表字段注释
$this->rfname = $tmaterial->findSql($rs_fname);
不知道spModel有没有直接取字段注释的方法?
2010-07-20 10:59:16
#2 ghj386
我简单查找了spModel.php,没有找到,不知道其他地方有没有
2010-07-20 11:03:51
#3 jake
没有直接获取注释,你可以直接使用SQL语句来获取。
2010-07-20 11:27:10
#4 ghj386
有没有什么好办法,在现实编辑页面的时候,能自动按:“字段注释--字段值”的方式显示即在smarty下:
因为我没有办法把字段注释和字段值放在同一个记录里,只能传两个记录到smarty,一个是该表字段注释,一个是该记录
得到的两个数组时下面这样的格式:
字段注释数组:rf:
rf[0]['rfname']='id';
rf[0]['rffname']='物品id';
rf[1]['rfname']='name';
rf[1]['rffname']='物品名称';
rf[2]['rfname']='note';
rf[2]['rffname']='物品介绍';
得到的记录数组:r:
r[0]['id']=3;
r[0]['name']='水蜜桃';
r[0]['note']='北京特产';
我希望能自动将rf和r排成这样子的表格
[table=50%]
[tr][td]物品id[/td][td]3[/td][/tr]
[tr][td]物品名称[/td][td]水蜜桃[/td][/tr]
[tr][td]物品介绍[/td][td]北京特产[/td][/tr]
[/table]
我现在只能用这样的老土办法:
<{foreach from $字段注释查询结果 item=一条注释查询记录}>
<{$一条注释查询记录.字段注释}> |
<{foreach from $查询结果 item 一个记录}>
<{foreach from $一个记录 key 一个记录字段名 item 一个记录的字段值}><{if $一个记录字段名==$一条注释查询记录.字段名}><{$一个记录的字段值}> | <{/if}><{/foreach}><{/foreach}>
2010-07-20 23:13:55
#5 jake
你可以看看smarty的foreach中的iteration的作用。它会实现一定的数组下标功能。
http://www.smarty.net/manual/en/language.function.foreach.php
2010-07-21 09:48:05
#6 azwl
你的意思是不是要在显示字段名的地方用字段注释来替换?
2010-07-21 11:04:16
#7 ghj386
对,就是想这样,在显示字段名的地方用字段注释来替换,在smarty里。有什么好办法吗?
2010-07-21 11:23:44
#8 jake
没想到什么好办法。或者你可以先在PHP内构造好了带注释的数组,再发送到smarty内显示。
2010-07-21 12:35:38
#9 azwl
再问一下,如果得到的记录数组 r 的记录多于一条,表格如何排呢? 还是只可能一条?
2010-07-21 14:38:42
#10 ghj386
回复 9 azwl 搞来搞去,还是觉得用我那个土办法好。因为查询结果只有一条,字段数也不会很多,两个foreach循环其实就是遍历一次一个查询结果的所有字段。效率不会低。而且简单明白
记录就是一条,是在现实单条记录时用的。
多条那就非常好办了,按行排呀
<{foreach from $字段注释结果 item 字段注释}><{$字段注释.字段注释名}> | <{/foreach}>
<{foreach from $查询结果 item 一个记录}>
<{foreach from $一个记录 item 一个记录的字段值}><{$一个记录的字段值}> | <{/foreach}>
<{/foreach}>
2010-07-21 21:17:34