2009-06-08 4 views
0

나는, 동일한 데이터에 반복 같이 자신을 반복 계속에서 다음 테이블의 데이터를 막으려 브라우저 충돌하고 있습니다 :정지 연속 테이블 세대

$posts = mysqli_fetch_assoc(mysqli_query($db, "SELECT * from tbl_bugresponse WHERE bugid = $id ORDER BY time")); 
: 여기

는 쿼리의 내가 mysqli MySQL을하지 사용하고

<table width="100%" class="tborder"> 
    <tr> 
     <th class="tcat">Name</th> 
     <th class="tcat">Reply</th> 
    </tr> 
    <?php 
     $colour="1"; 
     while($posts) { 
      if($colour == "1"){ 
       echo ("<tr class='alt1'>"); 
       $f1 = $posts['by']; 
       $f2 = $posts['content']; 
       $colour = "2"; 
      } 
      else { 
       echo "<tr class='alt2'>"; 
       $f1 = $posts['by']; 
       $f2 = $posts['content']; 
       $colour = "1"; 
      } 
      ?> 
      <td><?php echo $f1; ?></td> 
      <td><?php echo $f2; ?></td> 
     </tr> 
     <?}?> 
</table> 

참고 :

그리고 여기에 테이블 코드입니다.

답변

4

결과 세트를 진행하고 있지 않습니다. mysqli_query는 결과 집합을 가져오고, mysqli_fetch_assoc은 결과 집합을 처리한다. 다음과 같은 것이 필요합니다.

$results = mysqli_query($db, "SELECT * from tbl_bugresponse WHERE bugid = $id ORDER BY time"); 
while ($posts = mysqli_fetch_assoc($results)) { 
    // table construction code goes here 
} 
4

문제는 while($posts){입니다.

"누군가가 게시물 변수를 null 또는 false로 설정할 때까지 계속하십시오."라는 코드를 작성했지만 절대 건드리지 않을 것입니다 ... 그래서 영원히 계속 될 것입니다.

업데이트는이 일을 해야하는 방법에 대한 혼란있어 것 같습니다, 쿼리의 또 다른 모습을했다. 당신은 mysqli_query 전화가 밖으로 분리되어 있습니다 것

$result = mysqli_query($db, "SELECT * from tbl_bugresponse WHERE bugid = $id ORDER BY time"); 
... 
$post = mysql_fetch_assoc($result); // fetch first row 
while($post) { // will keep going until $post gets set to null or false 
    ... 
    $post = mysql_fetch_assoc($result); // fetch next row and re-run the loop 
} 

: 여기 것처럼 보여야합니다. mysqli_query이 수행하는 작업은 데이터베이스 쿼리를 실행 한 다음 쿼리에서 되돌아 오는 행 목록에 대한 "처리"를 제공합니다. 대부분의 사람들이 "핸들"이 아닌 모든 행을 배열로 제공하기를 기대하기 때문에 이것은 혼란의 공통점입니다.

그런 다음 mysql_fetch_assoc으로 전화를 걸어 목록에서 첫 번째 행을 가져온 다음 그 행과 함께 무언가를 수행 한 다음 mysql_fetch_assoc 번을 다시 호출하여 다음 행을 가져옵니다.

행이 부족한 경우 mysql_fetch_assoc은 유효한 행 대신 null을 반환하므로 완료했을 때 확인할 수있는 방법과 루프를 중지하는 방법입니다.

+0

어떻게 코드를 삽입 할 수 있습니까? – bear