2013-10-05 2 views
-1

나는 쉽게 조작 할 수 있도록 데이터베이스에서 가져온 클래스와 고유 ID를 사용하여 divs을 많이 나타내는 동적 페이지를 만듭니다. 내가 최선의 방법을하고 있는지 확실하지 않거나 나에게 이해하기가 거칠고 힘들어 보이지 않습니다. 나는 더 많은 경험을 가진 누군가가 같은 것을 성취 할 수있는 더 좋은 방법이 있는지를 깨닫도록 도울 수 있기를 바라고 있습니다. 예를 들어 :PHP와 많은 HTML을 결합합니다

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>"; 
    } 

} 

나는 모든 내용이 별도의 divs에있을 원하기 때문에 나는 그것이 div 반향이 이유는, 대신 중 하나는 MySQL의 쿼리에서 데이터를 분리합니다. 다행히도 충분한 정보를 제공해 주셔서 더 이상 필요 하신지 알려주세요.

+2

Smarty와 같은 템플릿 시스템 사용을 고려해야합니다. http://www.smarty.net/ – Joren

+0

템플릿 시스템을 사용하려면 @Joren에 동의합니다. 나는 개인적으로 스마티의 팬이 아니지만. – Boundless

+0

에코가 거의없는 대신 전체 텍스트에 하나의 에코를 사용하는 것이 더 스마트하지 않습니까? – Yotam

답변

1

당신은 꽤 많이 아래 코드를 축소 할 수 있습니다 : PHP에 대한

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>"; 
     } 
    } 
} 
0

DB에 대체 행 스타일을 할당하기위한 열만 있으면 안됩니다. 대신 변수를 소개하고 변수를 점검 할 수 있습니다. 이 코드는 훨씬 더 읽기 쉽게 만들 것

<?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 
} 
?> 

:

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++; 
} 

당신은 또한 태그를 쓸 수 있습니다. 그건 당신이 무슨 뜻인지

+0

통지 : 바로 가기 ''isn 기본적으로 허용됩니다

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();라는 기능과 기본 템플릿에 배치 할 수 있습니다 이 코드를 다시 입력하십시오.

관련 문제