2010-11-20 3 views
0

목표는 매우 간단합니다. MySQL 테이블의 열 이름과 해당 MySQL 테이블의 내용을 보여주는 본문을 보여주는 헤더가있는 HTML 테이블을 생성하고 싶습니다. - 나는 가능한 한 사용 루프 등이 효율적 만들기 위해 노력하고있어 헤더 케이크 한 조각했다 :PHP : MySQL 테이블의 모든 값을 포함하는 출력 테이블

$columns = mysql_query("SHOW COLUMNS FROM my_table;"); 
while($row = mysql_fetch_array($columns)) { 
    echo '<th>'.$row['Field'].'</th>'; 
} 

하지만 문제가 본문 데이터를 얻는 데, 누군가가 도움이 될 기대했다. 여기에 내가이 해야 작업을 생각하는 방법은 다음과 같습니다

$query = mysql_query("SELECT * FROM my_table;"); 
while($row = mysql_fetch_array($query)) { 
    echo '<tr>'; 
    foreach($row as $r) { 
     echo '<td>'.$r.'</td>'; 
    } 
    echo '</tr>'; 
} 

그러나 위의 코드를 각 값의 두 인스턴스를 (값 1, 값 1, 값 1, 값 ...) 반환을, 그리고 그 각각의 값 때문입니다 확신 해요 배열에는 실제로 두 개의 키 (숫자 하나와 텍스트 하나)가 있으므로 각 키를 두 번 인쇄합니다. 각 필드를 한 번만 인쇄하는 방법을 알아낼 수 없습니다. 또한 foreach 루프 대신 아래 코드를 시도했습니다.이 코드는 실제로 각 테이블의 12 개의 필드를 한 번만 인쇄하지만 12 개의 빈 td 태그를 인쇄합니다. 배열의 항목 수를 두 번 계산하기 때문에 다시 나타납니다.

기본적으로, 배열의 올바른 길이를 반환하는 함수가 필요합니다. foreach 루프를 사용하는 것이 좋지만 lopp에 대해서도 열려 있습니다. 어떤 아이디어?

답변

3

.

SHOW COLUMNS 쿼리를 수행하는 대신 mysql_field_name을 사용할 수 있습니다. 그래도 코드를 약간 수정해야합니다.

+0

Works, thanks guys! – Chris

+0

아, 새 과오를 용서해주십시오. 전에 확인 버튼을 보지 못했습니다. 끝난! 고마워. – Chris

0
$query = mysql_query("SELECT * FROM my_table;"); 
$table = mysql_fetch_array($query) 
foreach ($table as $row) { 
    echo '<tr>'; 
    foreach ($row as $field) { 
     echo '<td>'.$field.'</td>'; 
    } 
    echo '</tr>'; 
} 

편집 : 작동이 그분들의 ... 그냥 mysql_fetch_assoc 또는 mysql_fetch_row로로 MYSQL_ASSOC를 대체

관련 문제