2010-01-25 24 views
1

我有一些手动写入数据库的节点。 (不要问为什么;它比其他选项更容易)。它们在内容列表http://www.domain.com/admin/content/node/overview上显示正常。但是,当我转到该节点的页面(http://www.domain.com/node/2582/view,其中2582是所讨论的节点的nid)时,出现页面未找到错误。什么可能导致这个?Drupal-6:这个节点有什么不对?

这里是在数据库中(从PHPMyAdmin中导出为XML)这样的节点

<node> 
<!-- node table --> 
    <nid>2587</nid> 
    <vid>2588</vid> 
    <type>bout</type> 
    <language>en</language> 
    <title>the title 8</title> 
    <uid>0</uid> 
    <status>1</status> 
    <created>0</created> 
    <changed>0</changed> 
    <comment>0</comment> 
    <promote>0</promote> 
    <moderate>0</moderate> 
    <sticky>0</sticky> 
    <tnid>0</tnid> 
    <translate>0</translate> 
<!-- content_type_bout table --> 
    <vid>2588</vid> 
    <nid>2587</nid> 
    <field_fencer_uid>8</field_fencer_uid> 
    <field_touches_scored_value>5</field_touches_scored_value> 
    <field_touches_received_value>2</field_touches_received_value> 
    <field_meet_nid>2583</field_meet_nid> 
    <field_round_value>3</field_round_value> 
    <field_legacy_bout_value>0</field_legacy_bout_value> 
<!-- term_node table --> 
    <nid>2587</nid> 
    <vid>2588</vid> 
    <tid>29</tid> 
</node> 

回答

0

看行给我。我去那个页面,它说拒绝访问,但没有找到页面。我不知道你是否需要/查看网址的末尾。

+0

观看的节点,禁止用于匿名用户。但是,当我去看它时,有权查看,它说没有找到页面。 – 2010-01-26 21:18:29

2

在你的例子中,nid是2587,而vid(来自修订表的版本ID)是2588.现在这可能是好的,如果你使用修订版和节点2587本身或者一些旧节点已经更新一次已经 - 否则它可能是一个问题,因为没有任何修改,两者应该是相同的。

因此,您应该检查修订表中的条目 - 每个节点至少应有一个相应的条目(node_nid == revision_nid),其中vid等于或高于nid。

如果您手动插入新节点,则还需要创建相应的修订版,并将vid设置为下一个可用值(将自动发生,因为它是串行的)。

(注:稍有编辑,作为初始答案包含关于NID <> VID关系的错误的假设)

+0

好吧,但如果另一个节点已经有我想使用的nid的视频怎么办?这是否意味着我必须继续递增nid,直到它大于所有现有的nids和所有现有的vids? – 2010-01-28 00:28:16

+0

Oups - 不,这并不意味着。我错了,因为我认为修订表具有nid和vid的组合主键,但它只是vid!因此,新节点(或现有节点的新版本)只需获得下一个免费vid。将相应地编辑答案。 – 2010-01-28 08:38:36

+0

好,已编辑。所以现在它只是归结为'确保你已经为你的节点创建了适当的修订版',你似乎已经有了,所以这可能不是罪魁祸首。对不起,我很困惑:/ – 2010-01-28 08:47:40