功能和输出foreach结果与HTML

时间:2014-05-19 04:59:40

标签: php mysqli

我的问题是div.link上的输出$项目,所有测试都不好,因为第一次测试显示结果在身体和第二次测试显示导致顶部身体不在我的特定div

第一次不好的测试:

function list($id) {

        $query = sprintf("SELECT * FROM `social` WHERE `userid` = '%s'", $id);

        $result = $this->db->query($query);

        $table = array();

        if($result->num_rows > 0) {
            while($row = $result->fetch_array()) {
                $table[] = $row['username'];

            }

            echo '<div class="sidebar friends">';
                    echo '<div class="content">';
                    echo     '<div class="head">Group</div>';
                    echo       '<div class="inner">';

                    foreach($table as $items){
                        echo '<div class="link">';
                        echo $items;
                        echo'</div>';
                        }   

                            echo'</div>';
                        echo'</div>';
                echo'</div>';

        } else {
        return false;
    }
}

更好的结果是这样的,但输出不在我的div链接中,因为在关闭变量输出之前:

function list($id) {

    $query = sprintf("SELECT * FROM `social` WHERE `userid` = '%s'", $id);

    $result = $this->db->query($query);

    $table = array();

    if($result->num_rows > 0) {
        while($row = $result->fetch_array()) {
            $table[] = $row['username'];

        }

    $output =  '<div class="sidebar friends"> 
                    <div class="content">
                        <div class="head">Group</div>
                            <div class="inner">
                                <div class="link">'; //i closing var but foreach result not displayed in div link
                                //how i can output result here in div link?
                            foreach($table as $items){
                                echo $items; //items need to be display...
                            }
                $output .=  '</div>
                        </div>
                    </div>
                </div>
            </div>';

        return $output;
        } else {
            return false;

    }
}

我如何在div.link中使用foreach输出结果?

这是我需要显示的方式:

<div class="sidebar-container widget-welcome"> 
    <div class="sidebar-content">
        <div class="sidebar-header">Group</div>
            <div class="sidebar-inner">
                <div class="sidebar-link">

                    //foreach output items result here

                </div>
            </div>
        </div>
    </div>
</div>

3 个答案:

答案 0 :(得分:4)

它不会出现,因为你是ECHO'ing $item。修复是使用您从函数返回的$output字符串附加$ item。

请改变你的循环,如下所示:

foreach($table as $items){
            $output .= $items; //items need to be display...
     }

答案 1 :(得分:1)

更改您的代码块,如下所示(将link div置于循环内并正确追加结束div)

$output =  '<div class="sidebar friends"> 
            <div class="content">
            <div class="head">Group</div>
            <div class="inner">';
                foreach($table as $items){
                        $output .= '<div class="link">'.$items.'</div>';
                }
$output .='</div></div></div>';

答案 2 :(得分:1)

在另一个注释中,我建议只需将html移动到另一个文件然后包含它,将$ table作为参数传递并在那里循环。提高了可读性。