在循环中将一部分PHP附加到div

时间:2013-02-11 01:19:45

标签: php html mysql loops while-loop

假设我有这个简单的PHP MYSQL while循环:

<?php
while($row = $STH->fetch())
{
echo '<div id="$row['id']">$row['content']</div>';

echo '<div id="comment-holder">;
echo '<div id="$row['id2']">$row['content2']</div>'; 
echo '</div>';   

echo '<div id="$row['id3']">$row['content3']</div>';  

?>

如何让comment-holder DIV像持有人一样行事?意味着它应该只回显一次,$row[id2]$row[content2]的内容应该附加到它上面,如下所示:

 <div id="comment-holder">
 <div id="1">test</div> 
 <div id="2">different</div>
 <div id="3">text</div>  
 </div>

提前致谢

4 个答案:

答案 0 :(得分:2)

首先:您的代码有错误 - 在单引号字符串中不是字符串插值。 如果你想要那个结构,你可以使用给定的div

简单地包围你的代码
<div class="comment-holder">
<?php
while($row = $STH->fetch())
{
echo "<div id=\"{$row['id']}\">{$row['content']}</div>";
echo "<div id=\"{$row['id2']}\">{$row['content2']}</div>";
echo "<div id=\"{$row['id3']}\">{$row['content3']}</div>";  
}
?>
</div>

或者:

<?php
echo '<div class="comment-holder">';
while($row = $STH->fetch())
{
    echo "<div id=\"{$row['id']}\">{$row['content']}</div>";
    echo "<div id=\"{$row['id2']}\">{$row['content2']}</div>";
    echo "<div id=\"{$row['id3']}\">{$row['content3']}</div>";  
}
echo '</div>';
?>

答案 1 :(得分:0)

也许我错过了一些非常明显的东西,但是......为什么不改变回声的顺序呢?

<?php
while($row = $STH->fetch())
{

echo '<div id="comment-holder">';
echo '<div id="' . $row['id'] . '">' . $row['content'] . '</div>';
echo '<div id="' . $row['id2'] . '">' . $row['content2'] . '</div>'; 
echo '<div id="' . $row['id3'] . '">' . $row['content3'] . '</div>';  
echo '</div>';   

?>

顺便说一句,while块在哪里结束?

答案 2 :(得分:0)

$ones = $twos = $threes = '';

while ($row = $STH->fetch()) {
    $ones .= "<div id='$row[id]'>$row[content]</div>";
    $twos .= "<div id='$row[id2]'>$row[content2]</div>";
    $threes .= "<div id='$row[id3]'>$row[content3]</div>";
}

$result = sprintf("%s<div id='comment-holder'>%s</div>%s", $ones, $twos, $threes)

答案 3 :(得分:-1)

将它放在while循环之外。防爆。

<?php
    echo 'hi';
    for($i = 0; $i < 5; $i++){
        echo 'yo';
    }
    echo 'the end';
?>

将输出:嗨哟哟哟你最后