Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] ss7的模型采集功能探讨?

[复制链接]
guokeivy 发表于 2009-9-16 13:34:08 | 显示全部楼层 |阅读模式
ss7的模型没有采集功能,如何实现?
那位有研究过没有,能不能详细地诉说一下
包括可能新增加的字段,采集规则里面可能也需要增加很多新的识别字段的办法,然后如何写入数据库!
目前没有这个功能。
你原来说的在入库的地方去修改,但是我找了半天也没发现在那里入的库

在admin_robotmessages.php里面好象有入库的地方,但修改了一下好象不对,请指教
                        $query = $_SGLOBAL['db']->query('SELECT i.* FROM '.tname('robotitems').' i WHERE i.robotid=\''.$_POST['robotid'].'\' AND i.isimport=0 ORDER BY i.robottime');
                }
                $itemarr = $theitemidarr = array();
                while ($item = $_SGLOBAL['db']->fetch_array($query)) {
                        $robotitemid = $theitemidarr[] = $item['itemid'];
                        $item = saddslashes($item);
                        $hashstr = smd5($_SGLOBAL['supe_uid'].'/'.rand(1000, 9999).$_SGLOBAL['timestamp'].$item['itemid']);
                        $setsqlarr = array(
                                'catid' => $_POST['catid'],
                                'uid' => $item['uid'],
                                'username' => $item['username'],
                                'type' => 'news',
                                'subject' => $item['subject'],
                                'dateline' => $item['dateline'],
                                'lastpost' => $item['dateline'],
                                'hash' => $hashstr,
                                'haveattach' => ($item['haveattach']==1?1:0)
                        );
                        $itemid = inserttable('spaceitems', $setsqlarr, 1);
                        $robotid = $item['robotid'];
                        $itemidarr[$item['itemid']] = $itemid;
                        $itemarr[$item['itemid']] = $item;
                        if($item['haveattach']) {
                                $_SGLOBAL['db']->query("UPDATE ".tname('attachments')." SET itemid='$itemid', catid='$_POST[catid]', uid='$item[uid]', hash='$hashstr' WHERE hash='R{$robotid}I{$robotitemid}'");
                                //更新图文资讯
                                $attvalue = $_SGLOBAL['db']->fetch_array($_SGLOBAL['db']->query("SELECT aid FROM ".tname('attachments')." WHERE itemid='$itemid' AND isimage='1' LIMIT 0 ,1"));
                                $_SGLOBAL['db']->query("UPDATE ".tname('spaceitems')." SET picid='$attvalue[aid]' WHERE itemid='$itemid'");
                        }
                }
                //内容
                if(empty($theitemidarr)) showmessage('robotmessage_op_success', $theurl);
                $itemids = implode('\',\'', $theitemidarr);
                $query = $_SGLOBAL['db']->query('SELECT ii.* FROM '.tname('robotmessages').' ii WHERE ii.itemid IN (\''.$itemids.'\') ORDER BY ii.msgid');
                while ($msg = $_SGLOBAL['db']->fetch_array($query)) {
                        $msg = saddslashes($msg);
                        if(empty($itemidarr[$msg['itemid']])) continue;
                       $setsqlarr = array(
                                'itemid' => $itemidarr[$msg['itemid']],
                                'message' => $msg['message'],
                                'newsauthor' => $itemarr[$msg['itemid']]['author'],
                                'newsfrom' => $itemarr[$msg['itemid']]['itemfrom']
                        );
                        inserttable('spacenews', $setsqlarr);
                }
inserttable()函数好象就是,但我把inserttable('spacenews', $setsqlarr);
修改成inserttable('modelmessage', $setsqlarr);
好象无用

咨讯的帖子主要保存在supe_spacenews和supe_spaceitems2个表里面
那模型的帖子就应该在supe_modelmessage和supe_modelitems里面了吧?
望详解
xt1woft1 发表于 2009-9-16 13:40:37 | 显示全部楼层
楼主能不能在清处些,有点看不太懂














discuz.net
SIGNATURE -----------------------------------------------------------------------   

灯箱 标识 手机 健康
回复

使用道具 举报

lidq.jingwu 发表于 2009-9-16 14:00:53 | 显示全部楼层
这是要拼SQL语句的,不是说改就改的。
  1. inserttable()函数好象就是,但我把inserttable('spacenews', $setsqlarr);
  2. 修改成inserttable('modelmessage', $setsqlarr);
  3. 好象无用
复制代码
inserttable('spacenews', $setsqlarr);
这个函数中的第一个是表名,要与模型的表名一致才可以,而modelmessage明显不是表名。
$setsqlarr是SQL语句,这个是插入表的SQL,你没有拼它是不可能插入成功的。
回复

使用道具 举报

 楼主| guokeivy 发表于 2009-9-16 14:11:00 | 显示全部楼层
这是要拼SQL语句的,不是说改就改的。inserttable()函数好象就是,但我把inserttable('spacenews', $setsqlarr);
修改成inserttable('modelmessage', $setsqlarr);
好象无用inserttable('spacenews', $setsqlarr);
...
lidq.jingwu 发表于 2009-9-16 14:00


我用modelmessage来代表模型的表名
比如我建一个bar的模型
表名就是supe_barmessage
这个我还是清楚的啊!
关键是插不进去,结果还是插到spacenews里面去了
回复

使用道具 举报

lidq.jingwu 发表于 2009-9-16 14:15:34 | 显示全部楼层
$setsqlarr这个里面放的才是真正的插入语句,你改写了吗?
回复

使用道具 举报

 楼主| guokeivy 发表于 2009-9-16 16:01:46 | 显示全部楼层
$setsqlarr这个里面放的才是真正的插入语句,你改写了吗?
lidq.jingwu 发表于 2009-9-16 14:15

改过了啊!
但他却插到spacenews这个表里面去了,所以我觉得奇怪啊!
我再研究研究代码,昨天晚上我研究到2点钟
回复

使用道具 举报

 楼主| guokeivy 发表于 2009-9-16 16:04:40 | 显示全部楼层
本帖最后由 guokeivy 于 2009-9-16 16:07 编辑

mysql> describe supe_barmessage;
+-----------------+-----------------------+------+-----+---------+----------------+
| Field           | Type                  | Null | Key | Default | Extra          |
+-----------------+-----------------------+------+-----+---------+----------------+
| nid             | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
| itemid          | mediumint(8) unsigned | NO   | MUL | 0       |                |
| message         | text                  | NO   |     | NULL    |                |
| postip          | varchar(15)           | NO   |     |         |                |
| relativeitemids | varchar(255)          | NO   |     |         |                |
| ip              | varchar(15)           | NO   |     | 0.0.0.0 |                |
| Province        | varchar(15)           | NO   |     | ?????   |                |
| County          | varchar(15)           | NO   |     | ?/?     |                |
| add             | varchar(100)          | NO   |     | ????    |                |
| boss            | varchar(20)           | NO   |     | ??????  |                |
| boss1           | varchar(20)           | NO   |     | ??????  |                |
| boss2           | varchar(20)           | NO   |     | ????IM  |                |
| master3         | varchar(20)           | NO   |     | @       |                |
| master          | varchar(20)           | NO   |     | NULL    |                |
| master1         | varchar(20)           | NO   |     | NULL    |                |
| master2         | varchar(20)           | NO   |     | NULL    |                |
| computer        | smallint(5)           | NO   |     | NULL    |                |
| computer1       | text                  | NO   |     | NULL    |                |
| around          | text                  | NO   |     | NULL    |                |
| environment     | text                  | NO   |     | NULL    |                |
| people          | text                  | NO   |     | NULL    |                |
| pro             | text                  | NO   |     | NULL    |                |
| advice          | text                  | NO   |     | NULL    |                |
| salesman        | text                  | NO   |     | NULL    |                |
| author          | text                  | NO   |     | NULL    |                |
+-----------------+-----------------------+------+-----+---------+----------------+
25 rows in set (0.00 sec)


mysql> describe supe_baritems;
+--------------+-----------------------+------+-----+---------+----------------+
| Field        | Type                  | Null | Key | Default | Extra          |
+--------------+-----------------------+------+-----+---------+----------------+
| itemid       | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
| catid        | smallint(6) unsigned  | NO   | MUL | 0       |                |
| uid          | mediumint(8) unsigned | NO   |     | 0       |                |
| tid          | mediumint(8) unsigned | NO   |     | 0       |                |
| username     | char(15)              | NO   |     |         |                |
| subject      | char(80)              | NO   |     |         |                |
| subjectimage | char(80)              | NO   |     |         |                |
| rates        | smallint(6) unsigned  | NO   |     | 0       |                |
| dateline     | int(10) unsigned      | NO   |     | 0       |                |
| lastpost     | int(10) unsigned      | NO   |     | 0       |                |
| viewnum      | mediumint(8) unsigned | NO   |     | 0       |                |
| replynum     | mediumint(8) unsigned | NO   |     | 0       |                |
| allowreply   | tinyint(1)            | NO   |     | 0       |                |
| grade        | tinyint(1)            | NO   |     | 0       |                |
+--------------+-----------------------+------+-----+---------+----------------+
14 rows in set (0.01 sec)

mysql> describe supe_spacenews;
+-----------------+-----------------------+------+-----+---------+----------------+
| Field           | Type                  | Null | Key | Default | Extra          |
+-----------------+-----------------------+------+-----+---------+----------------+
| nid             | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
| itemid          | mediumint(8) unsigned | NO   | MUL | 0       |                |
| message         | text                  | NO   |     | NULL    |                |
| relativetags    | text                  | NO   |     | NULL    |                |
| postip          | varchar(15)           | NO   |     |         |                |
| relativeitemids | varchar(255)          | NO   |     |         |                |
| customfieldid   | smallint(6) unsigned  | NO   |     | 0       |                |
| customfieldtext | text                  | NO   |     | NULL    |                |
| includetags     | text                  | NO   |     | NULL    |                |
| newsauthor      | varchar(20)           | NO   |     |         |                |
| newsfrom        | varchar(50)           | NO   |     |         |                |
| newsfromurl     | varchar(150)          | NO   |     |         |                |
| newsurl         | varchar(255)          | NO   |     |         |                |
| pageorder       | smallint(6) unsigned  | NO   |     | 0       |                |
+-----------------+-----------------------+------+-----+---------+----------------+
14 rows in set (0.00 sec)

mysql> describe supe_spaceitems;
+------------+-----------------------+------+-----+---------+----------------+
| Field      | Type                  | Null | Key | Default | Extra          |
+------------+-----------------------+------+-----+---------+----------------+
| itemid     | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
| catid      | smallint(6) unsigned  | NO   | MUL | 0       |                |
| uid        | mediumint(8) unsigned | NO   | MUL | 0       |                |
| tid        | mediumint(8) unsigned | NO   |     | 0       |                |
| username   | char(15)              | NO   |     |         |                |
| itemtypeid | mediumint(8) unsigned | NO   |     | 0       |                |
| type       | char(10)              | NO   | MUL |         |                |
| subtype    | char(10)              | NO   |     |         |                |
| subject    | char(80)              | NO   |     |         |                |
| dateline   | int(10) unsigned      | NO   |     | 0       |                |
| lastpost   | int(10) unsigned      | NO   |     | 0       |                |
| viewnum    | mediumint(8) unsigned | NO   |     | 0       |                |
| replynum   | mediumint(8) unsigned | NO   |     | 0       |                |
| goodrate   | int(10) unsigned      | NO   |     | 0       |                |
| badrate    | int(10) unsigned      | NO   |     | 0       |                |
| digest     | tinyint(1)            | NO   |     | 0       |                |
| top        | tinyint(1)            | NO   |     | 0       |                |
| allowreply | tinyint(1)            | NO   |     | 1       |                |
| hash       | char(16)              | NO   |     |         |                |
| folder     | tinyint(1)            | NO   |     | 1       |                |
| haveattach | tinyint(1)            | NO   |     | 0       |                |
| grade      | tinyint(1)            | NO   |     | 0       |                |
| gid        | mediumint(8) unsigned | NO   | MUL | 0       |                |
| gdigest    | tinyint(1)            | NO   |     | 0       |                |
| password   | char(10)              | NO   |     |         |                |
| styletitle | char(11)              | NO   |     |         |                |
| picid      | mediumint(8) unsigned | NO   |     | 0       |                |
+------------+-----------------------+------+-----+---------+----------------+
27 rows in set (0.00 sec)
回复

使用道具 举报

 楼主| guokeivy 发表于 2009-9-16 16:12:13 | 显示全部楼层
把多的删掉啊!就是把插入modelitems和modelmessage里面里面没有的单元删除啊

但不知道怎么结果还是插入到spacenews的表里面去了?难道后台还有缓存,因为没有更新缓存的缘故吗?
更改了
$itemid = inserttable('spaceitems', $setsqlarr, 1);为$itemid = inserttable('baritems', $setsqlarr, 1);
更改inserttable('spacenews', $setsqlarr);为inserttable('barmessage', $setsqlarr);
回复

使用道具 举报

lidq.jingwu 发表于 2009-9-16 16:23:58 | 显示全部楼层
$itemid = inserttable('spaceitems', $setsqlarr, 1);为$itemid = inserttable('baritems', $setsqlarr, 1);
更改inserttable('spacenews', $setsqlarr);为inserttable('barmessage', $setsqlarr);

系统默认的插入到资讯中的,那么在inserttable函数中的程序应该是针对spacenews表的,应该要修改函数inserttable,给它一个选择,让它执行插入模型里面的数据。
回复

使用道具 举报

 楼主| guokeivy 发表于 2009-9-16 16:38:12 | 显示全部楼层
function inserttable($tablename, $insertsqlarr, $returnid=0, $replace = false, $silent=0) {
        global $_SGLOBAL;
        $insertkeysql = $insertvaluesql = $comma = '';
        foreach ($insertsqlarr as $insert_key => $insert_value) {
                $insertkeysql .= $comma.'`'.$insert_key.'`';
                $insertvaluesql .= $comma.'\''.$insert_value.'\'';
                $comma = ', ';
        }
        $method = $replace?'REPLACE':'INSERT';
        $_SGLOBAL['db']->query($method.' INTO '.tname($tablename).' ('.$insertkeysql.') VALUES ('.$insertvaluesql.') ', $silent?'SILENT':'');
        if($returnid && !$replace) {
                return $_SGLOBAL['db']->insert_id();
        }
}

没看出来那里有

第一个$tablename, 我已经给选择了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-18 13:34 , Processed in 0.029767 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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