2015-08-23 57 views
0

我有这个功能显示标签列表:PHP注意:数组字符串转换在数组列表

$DB_QUERY = Access::FETCH("SELECT name, " . NEWS_TAGS . ".id,tags_id,content_id FROM " . NEWS_TAGS . " JOIN " . NEWS_POSTS_TAGS . " ON 
    " . NEWS_TAGS . ".id = " . NEWS_POSTS_TAGS . ".tags_id WHERE " . NEWS_POSTS_TAGS . ".content_id = ? AND " . NEWS_TAGS . ".type = ? ORDER BY " . NEWS_TAGS . ".name ASC LIMIT 8 ", filter_var($id, FILTER_VALIDATE_INT) , $type); 
$ret = array(); 

foreach($DB_QUERY as $row) 
    { 
    $ret[] = $row['name']; 
    } 

$tags = '<li class="label"><a href="#"><i class="fa fa-tag"></i>' . $ret . '</a></li>'; 

echo $tags; 

但我看到这个错误:

声明:Array对C字符串转换: \ XAMPP \ htdocs中\ frontcms \上线类\的functions.php 449

编辑:

我打印结果print_r($DB_QUERY)使用PHP print_r

Array(
    [0] => Array(
     [name] => 321[id] => 393[tags_id] => 393[content_id] => 244 
    ) [1] => Array(
     [name] => tagname1[id] => 395[tags_id] => 395[content_id] => 244 
    ) [2] => Array(
     [name] => tagname2[id] => 394[tags_id] => 394[content_id] => 244 
    ) [3] => Array(
     [name] => tagname3[id] => 396[tags_id] => 396[content_id] => 244 
    ) 
) 

如何解决这一问题?!

+0

这仅仅意味着$标签是一个数组,所以你可以不回它 – Hearner

回答

1

$ret是一个数组,您可以在$ tags中使用它。你可以举例

$tags = '<li class="label"><a href="#"><i class="fa fa-tag"></i>' . implode(", ", $ret) . '</a></li>'; 

它将所有名称分隔“,”。

但是你真正想要做的我猜是什么:

$tags = ""; 

foreach($DB_QUERY as $row) 
    { 
    $tags .= '<li class="label"><a href="#"><i class="fa fa-tag"></i>' . $row['name'] . '</a></li>'; 
    } 

echo $tags; 
1

你并不需要定义一个新的数组。您可以直接从foreach语句呼应的结果:

$DB_QUERY = Access::FETCH("SELECT name, " . NEWS_TAGS . ".id,tags_id,content_id FROM " . NEWS_TAGS . " JOIN " . NEWS_POSTS_TAGS . " ON 
    " . NEWS_TAGS . ".id = " . NEWS_POSTS_TAGS . ".tags_id WHERE " . NEWS_POSTS_TAGS . ".content_id = ? AND " . NEWS_TAGS . ".type = ? ORDER BY " . NEWS_TAGS . ".name ASC LIMIT 8 ", filter_var($id, FILTER_VALIDATE_INT) , $type); 

foreach($DB_QUERY as $row) { 
    echo '<li class="label"><a href="#"><i class="fa fa-tag"></i>' . $row['name'] . '</a></li>'; 
} 
+0

这种方法只显示我的唯一结果。请参阅我的编辑。 – Perspolis

+0

它应该工作..您的查询返回一个有效的数组.. foreach语句必须在这种情况下工作... –

相关问题