-1

この単純な 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-holderDIV をホルダーのように機能させるにはどうすればよいですか? つまり、一度だけエコーする必要があり$row[id2]、 a のコンテンツを$row[content2]追加して、次のように表示する必要があります。

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

前もって感謝します

4

4 に答える 4

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>';
?>
于 2013-02-11T01:23:18.093 に答える
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ブロックはどこで終わりますか?

于 2013-02-11T01:23:03.590 に答える
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)
于 2013-02-11T01:24:55.160 に答える
-1

while ループの外に置きます。元。

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

出力: hi yo yo yo yo yo the end

于 2013-02-11T01:25:56.870 に答える