请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 3624|回复: 9

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

[复制链接]
发表于 2010-7-20 10:59:16 | 显示全部楼层 |阅读模式
我现在是通过这种方式取得表字段注释的:
  //建立一个从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-7-20 11:03:51 | 显示全部楼层
我简单查找了spModel.php,没有找到,不知道其他地方有没有
发表于 2010-7-20 11:27:10 | 显示全部楼层
没有直接获取注释,你可以直接使用SQL语句来获取。
 楼主| 发表于 2010-7-20 23:13:55 | 显示全部楼层
有没有什么好办法,在现实编辑页面的时候,能自动按:“字段注释--字段值”的方式显示即在smarty下:
<table>
foreach 选定的单一记录
    <tr><td>字段注释</td><td>字段值</td></tr>
</table>

因为我没有办法把字段注释和字段值放在同一个记录里,只能传两个记录到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排成这样子的表格
   
物品id3
物品名称水蜜桃
物品介绍北京特产



我现在只能用这样的老土办法:
<table>
<{foreach from $字段注释查询结果 item=一条注释查询记录}>
<tr><td><{$一条注释查询记录.字段注释}></td>
<{foreach from $查询结果 item 一个记录}>
<{foreach from $一个记录 key 一个记录字段名 item 一个记录的字段值}><{if $一个记录字段名==$一条注释查询记录.字段名}><td><{$一个记录的字段值}></td><{/if}><{/foreach}><{/foreach}>      
</table>
发表于 2010-7-21 09:48:05 | 显示全部楼层
你可以看看smarty的foreach中的iteration的作用。它会实现一定的数组下标功能。
http://www.smarty.net/manual/en/language.function.foreach.php
发表于 2010-7-21 11:04:16 | 显示全部楼层
你的意思是不是要在显示字段名的地方用字段注释来替换?
 楼主| 发表于 2010-7-21 11:23:44 | 显示全部楼层
对,就是想这样,在显示字段名的地方用字段注释来替换,在smarty里。有什么好办法吗?
发表于 2010-7-21 12:35:38 | 显示全部楼层
没想到什么好办法。或者你可以先在PHP内构造好了带注释的数组,再发送到smarty内显示。
发表于 2010-7-21 14:38:42 | 显示全部楼层
再问一下,如果得到的记录数组 r 的记录多于一条,表格如何排呢? 还是只可能一条?
 楼主| 发表于 2010-7-21 21:17:34 | 显示全部楼层
回复 9# azwl


    搞来搞去,还是觉得用我那个土办法好。因为查询结果只有一条,字段数也不会很多,两个foreach循环其实就是遍历一次一个查询结果的所有字段。效率不会低。而且简单明白

记录就是一条,是在现实单条记录时用的。
多条那就非常好办了,按行排呀
<table>
<tr><{foreach from $字段注释结果 item 字段注释}><td><{$字段注释.字段注释名}></td><{/foreach}></tr>
<{foreach from $查询结果 item 一个记录}>
<tr><{foreach from $一个记录 item 一个记录的字段值}><td><{$一个记录的字段值}></td><{/foreach}></tr>
<{/foreach}>
</table>
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-5-28 22:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表