2012-02-01 51 views
-2
<?php 
    $dbhost = "localhost"; 
    $dbuser = "test"; 
    $dbpass = "testpass"; 
    $dbname = "testdb"; 

    foreach((get_the_category('orderby=ID&order=ASC')) as $childcat) 
    { 
    if (cat_is_ancestor_of(8, $childcat)) 
    { 
     echo $childcat->cat_ID . ; 
    } 
    } 
?></span> 
</ul> 

这是上面的代码我在PHP中,它的正确显示值,但我收到此错误:疑难解答“语法错误,意外‘;’”

Parse error: syntax error, unexpected ‘;’ at line 20.

我在做什么错在这里?这里有没有任何语法问题?它正确显示值,但也显示此错误。

+0

感谢所有的回复,但如果我确实echo $ childcat-> cat_ID;它不显示来自数据库的类别的任何值。如果我包括。最后,它显示正确的类别与此错误,任何想法? – 2012-02-01 05:10:04

+0

这个ID碰巧是0还是1? – animuson 2012-02-01 05:13:08

+0

对不起,我是PHP的新手。但我试过print_r($ childcat);而不是回显命令,它不显示任何内容。我也试图改变0和1,它不显示任何东西。 - 如果上面的命令if(cat_is_ancestor_of(1,$ childcat))将ID更改为1,它仍显示相同的值。我只是遵循这个职位:http://wordpress.org/support/topic/how-to-display-the-child-category-of-a-specific-parent-category – 2012-02-01 05:18:33

回答

4

我假设这是第20行:

echo $childcat->cat_ID . ; 

你缺少一个字符串追加到。如果您不想追加字符串,请不要使用.运算符。

1
echo $childcat->cat_ID . ; 

你在那里有一个尾随期。

0

的问题是这一行:

echo $childcat->cat_ID . ;

期间(点)是PHP的连接运算,因此预处理期待你来连接的东西,但越来越最终的语句( ;)代替。

+0

如果我确实echo $ childcat-> cat_ID;它不显示任何值。如果我包括。它显示正确的类别,任何想法? – 2012-02-01 05:08:00

0

代码中有错误。

变化

echo $childcat->cat_ID . ; 

echo $childcat->cat_ID ; 
0

尝试使用的var_dump($ childcat);出口;在第20行之前查看$ childcat包含的内容,它总是会返回一些内容。如果一个变量为空,var_dump返回null,所以试试看看。在$ childcat-> cat_ID上做一个var_dump来检查它的值。带有'。'的行20运算符是错误的,您必须找出为什么通过在最后附加连接运算符来获得输出,这可以通过var_dump检查变量,然后根据您得到的结果继续前进来完成。