虽然功能在回声

时间:2016-01-05 14:37:17

标签: php

我有一些看起来像这样的PHP代码:

echo"
<tr>
<td colspan=\"2\">" . get_comment(${'imgmodp_data_' . $i}['primid']) . "</td>
</tr>
 ";

我的get_comment功能:

function get_comment($primid)
{
    $dbCon = mysqli_connect("localhost", "something", "something", "something");
    $sql = "SELECT `id_sheep`, `text` FROM `comments` WHERE `primid`='$primid'";
    $query = mysqli_query($dbCon, $sql);

    while($row = mysqli_fetch_array($query))
    {
        return = "<div>" . $row['text'] . "</div></br>";
    }
}

但是每次只返回一行,即使它们是多行。如果我使用echo而不是return,它会返回所有行,但是在文档的顶部,而不是应该在的块中...

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

在循环之前使用变量,在循环中更新并在循环之后返回。

如果你只是使用return,你将停止该功能,所以在1循环之后。
使用echo可以直接输出字符串,但不要停止循环。

例如:

function get_comment($primid){
$dbCon = mysqli_connect("localhost", "something", "something", "something");
$sql = "SELECT `id_sheep`, `text` FROM `comments` WHERE `primid`='$primid'";
$query = mysqli_query($dbCon, $sql);
$return = '';
while($row = mysqli_fetch_array($query)){
    $return .= "<div>" . $row['text'] . "</div></br>";
}
return $return;
}

答案 1 :(得分:0)

这个怎么样?

echo "<div>" . $row['text'] . "</div></br>";

并将php代码放在您希望显示的位置。

<div class="row">
    <div class="col-sm-12">
        <div class="col-sm-6">
            <!-- PHP code goes here -->
        </div>
    </div>
</div>