2013-07-14 3 views
0

안녕하세요, PHP를 사용하여 HTML 테이블에서 MySQL 테이블에서 가로로 검색 한 데이터를 표시하려고합니다. 아래의 코드는 제 데이터베이스의 첫 번째 레코드 (두 번째 레코드에서 시작)를 제외하고는 잘 작동합니다. 나는 그것이 카운터와 관련이 있다고 확신하지만, 이것을 멈추는 방법을 알아낼 수는 없다. 누구든지 내 실수를 지적 할 수 있다면 정말 고마워!php 및 mysql을 사용하여 데이터를 가로로 표시

$items = 5; 
$query = "SELECT * FROM members "; 

$result = mysql_query($query) 
    or die(mysql_error()); 

$row = mysql_fetch_array($result); 

if (mysql_num_rows($result) > 0) { 

echo '<table border="1">'; 

$i = 0; 

while($row = mysql_fetch_array($result)){ 

    $first_name = $row['first_name']; 

      if ($i==0) { 
         echo "<tr>\n"; 
         } 

      echo "\t<td align=\center\">$first_name</td>\n"; 

      $i++; 

      if ($i == $items) { 

           echo "</tr>\n"; 
           $i = 0; 
           } 
}//end while loop 

if ($i > 0) { 

       for (;$i < $items; $i++) { 
         echo "<td>&nbsp;</td>\n"; 
        } 

       echo '</tr>'; 

       }//end ($i>0) if 

echo '</table>'; 

}else { 

    echo 'no records found'; 
} 
+0

당신은'mysql_' 기능을 사용하지 말아야하고 들여 쓰기 감사를의 그 – samayo

답변

1

시도하고 당신이 당신의 while 루프

+0

성가신입니다! 나는 그것을 정답으로 표시했을 것이다. 그러나 분명히 나는 ​​단 9 분 만에 끝낼 수 없다. –

+0

당신은 환영합니다 :) –

1

노력이 단순한 1 개 행을 건너 뛰고 그 이유는, 두 번 호출하는 1

$row = mysql_fetch_array($result);

제거합니다.

 $items = 5; 
    $query = "SELECT * FROM members "; 

$result = mysql_query($query) or die(mysql_error()); 
if (mysql_num_rows($result) > 0) { 

echo '<table border="1">'; 
while($row = mysql_fetch_array($result)){ 

$first_name = $row['first_name']; 
     echo "<tr>"; 
     for ($i=0 ; $i <= $items ;$i++) { 

        echo "<td align='center'>".$first_name."</td>"; 
        } 
}//end while loop 
    echo "</tr>"; 
    echo '</table>'; 
}else{ echo 'no records found'; } 
+0

@matttuman이게 더 간단 해 졌어? –

+0

결과를 세로로 표시하지만 감사합니다! –

+0

@matttuman 왜냐하면 나는'\ n'과'\ t'을 제거했기 때문입니다. 다시 추가하고 –

0

이전에이 문제가 발생했습니다. do while 루프를 대신 사용해보십시오. 예

do { 

// code 

} while($row = mysql_fetch_array($result)); //end while loop 
관련 문제