-1

divs簡単に操作できるように、クラスとデータベースから取得した一意の ID を使用して多くのエコーを行う動的ページを作成しています。私がそれを最善の方法で行っているかどうかはわかりませんが、それはずさんで理解しにくいようです。同じことを達成するためのより良い方法があるかどうか、より多くの経験を持つ誰かが私を理解するのを手伝ってくれることを願っています. 例えば:

if ($comment['reply'] == 1) {
    echo '<div class="comment">';
    echo $comment['comment'];
    echo "</div>";
    echo '<BR /> <div class="replys" id="'.$comment['id'].'">';
    echo '</div>';
    echo '<div class="replyTo" id="'.$comment['id'].'reply">';
while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) {
    if ($replys['order_by'] % 2 == 0){
        echo '<div class="replyToEven">';
        echo $replys['reply'];
        echo "</div>";
} else {
        echo '<div class="replyToOdd">';
        echo $replys['reply'];
        echo "</div>";
   }

}

a をエコーする理由は、MySQL クエリからデータを分離するのではなく、divすべてのコンテンツを別の にしたいからです。divs十分な情報を提供できれば幸いです。必要な場合はお知らせください。

4

3 に答える 3

1

それが意味するものであれば、コードをかなり圧縮できます。

if($comment['reply'] == 1){
    echo '<div class="comment">' . $comment['comment'] . '</div> <br />' . 
              '<div class="replys" id="' . $comment['id'] . '">' . '</div>' . 
                 '<div class="replyTo" id="'.$comment['id'].'reply">';

    while($replys = $stmt1->fetch(PDO::FETCH_ASSOC)){
        if($replys['order_by'] % 2 == 0){
            echo '<div class="replyToEven">' . $replys['reply'] . "</div>";
        }else{
            echo '<div class="replyToOdd">' . $replys['reply'] . "</div>";
        }
    }
}
于 2013-10-05T20:14:31.393 に答える
1

PHP の優れた点の 1 つは、HTML に埋め込むことができることです。できることは、html レイアウトを使用し、インライン php ステートメントを使用して値を処理することです。あなたが投稿したphpの例を示します。

<?php if(comment['reply'] == 1 { ?>
     <div class="comment">
        <?php echo $comment['comment']; ?>
     </div>
     <br/>
     <div class="replys" id="<?php echo comment['id']; ?>" >
     <div class="replyTo" id="<?php echo $comment['id']; ?>reply">
     <?php while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) { ?>
       <?php if ($replys['order_by'] % 2 == 0){ ?>
          <div class="replyToEven">
             <? php echo $replys['reply']; ?>
          </div>
        <?php } else { ?>
          <div class="replyToOdd">';
             <?php echo $replys['reply']; ?>
          </div>
<?php
    }
}

?>

次に、このスニペットを取得して、呼び出された関数に配置しshow_comments();、この形式でコメントを表示したいメイン テンプレートに配置すると、show_comments();このコードをもう一度入力するのではなく、関数を呼び出すことができます。

于 2013-10-05T20:19:44.473 に答える
0

DB に代替行スタイルを割り当てるためだけに、DB に列を作成しないでください。代わりに、変数を導入してそれをチェックすることができます。

if ($comment['reply'] == 1) {
    echo '<div class="comment">';
    echo $comment['comment'];
    echo "</div>";
    echo '<BR /> <div class="replys" id="'.$comment['id'].'">';
    echo '</div>';
    echo '<div class="replyTo" id="'.$comment['id'].'reply">';
    $i = 0;
while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) {
    if ($i % 2 == 0)
        $class = "replyToEven";
    else
        $class = "replyToOdd";

        echo '<div class="$class">';
        echo $replys['reply'];
        echo "</div>";
        $i++;
}

タグを次のように記述することもできます。

<?php
if ($comment['reply'] == 1) {
?>
<div class="comment"><?=$comment['comment']?></div><BR />
<div class="replys" id="<?=$comment['id']?>"></div>
<div class="replyTo" id="<?=$comment['id']?>reply">';
<?php
}
?>

これにより、コードがより読みやすくなります。

于 2013-10-05T20:07:34.947 に答える