2013-07-01 3 views
1

일반 쿼리 뷰어에서 작업 중이며 마지막으로 해결해야 할 문제가 하나 있습니다. 가정하자PHP mysqli_fetch_assoc 열 이름 값

그래서에 다음과 같은 데이터를 반환하는 쿼리 ...

| Job Code | Mon | Tue | Wed | Thu | Fri | Sat | Sun | 
-------------------------------------------------------- 
| 1234-567 | 0 | 3 | 2 | 5 | 2 | 0 | 0 | 
| 3214-431 | 0 | 2 | 4 | 3 | 0 | 0 | 0 | 

... 그리고 있습니다. 아래 코드를 실행하면 브라우저에 다음과 같은 결과가 표시됩니다. 연관 배열이 두 번 채워지는 것처럼 보입니다. MYSQLI_BOTH를 사용하여 가져 오기 배열을 만들었을 때 이것을 보았습니다.하지만 아래 코드를 사용하여 배열을 가져와야합니다.

| Job Code | Mon | Tue | Wed | Thu | Fri | Sat | Sun | Job Code | Mon | Tue | Wed | Thu | Fri | Sat | Sun | 
-------------------------------------------------------- 
| 1234-567 | 0 | 3 | 2 | 5 | 2 | 0 | 0 | 
| 3214-431 | 0 | 2 | 4 | 3 | 0 | 0 | 0 | 

코드 ...

function query2table($dbcon, $query) 
{ 
    // Connection is already made. 
    $queryResult = mysqli_query($dbcon, $query); 
    if($queryResult) 
    { 
     echo "<TABLE cellpadding='5' cellspacing='1' border='1'><THEAD><TR>\n"; 
     while ($hdrrow = mysqli_fetch_assoc($queryResult)) 
     { 
      foreach ($hdrrow as $hdr => $value) { 
       echo "<th>"; 
       echo $hdr; 
       echo "</th>"; 
      } 
     } 
     echo "</TR></THEAD>\n"; 
     mysqli_data_seek($queryResult, 0); 
     while ($row = mysqli_fetch_assoc($queryResult,MYSQLI_NUM)) 
     { 
      foreach($row as $cell) 
      { 
       echo "<TD>$cell</TD>"; 
      } 

      echo " </TR>\n"; 
     } 
     echo "</TABLE>\n"; 

    } else { 
     $error = mysqli_error($dbcon); 
     echo "\n<BR><BR>dbi_displayQuery - Error reading database: $error<BR><BR>\n"; 
    } 
} 

아이디어? 당신은 모든 행을 반복하고 결과를 가지고 머리글 행을 여러 번 출력하는

답변

1

:

: 헤더 행에 대해

while ($hdrrow = mysqli_fetch_assoc($queryResult)) 

, 당신은 하나 개의 행을 가져오고 그것을 사용할 필요가

if ($hdrrow = mysqli_fetch_assoc($queryResult)) 
+1

좋아요! 그랬어, 고마워. – misterrose