请问spModel有没有取表字段注释的方法

#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下:

foreach 选定的单一记录
   
字段注释字段值


因为我没有办法把字段注释和字段值放在同一个记录里,只能传两个记录到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