2015-01-22 10 views
1

내가 모든 동일한 행에 대해 먼저 확인하려는 것이다 별도의 테이블에 넣어 한 후 별도의 테이블확인 및

이에 넣어 것은 내가 무슨 짓을하다 지금까지

table1 
    | id | name | 
    | 1 | JUS  | 
    | 1 | NUM  | 
    | 2 | SET  | 


/** 
* this is the the query for retrieving the data 
* from table1 
*/ 
$query="SELECT 
      id, 
      name 
     FROM 
      table1 
     order by 
      id"; 

$results=$db->query($query); 

$previous=''; 
while($row=mysqli_fetch_assoc($results)){ 
    $id=$row['id']; 
    $name=$row['name']; 

    if($id==$previous){ 

     /** 
     * This is where i am stucked up 
     */ 
     $current=''; 

    } 
    $previous=$id; 
} 

나는

아래
first html table 
    ID  | 1 | 1 | 
    Name | JUS | NUM | 

처럼, 하나 개의 HTML 테이블에 값으로 1와 ID를 얻을 수 있으며 anoth에 값으로 2와 ID를 얻으려면 어 HTML 테이블. id는이 감사에 대해 이동하는 방법과 동일한

second html table 
    ID  | 2  | 
    Name | SET | 

어떤 생각을하지 않을 경우 모두에서 우리는 별도의 테이블을 을 얻을 것이다 그래서. 감사.

+0

다차원 배열에 데이터를 추가하십시오. 그런 다음 키 (id)로 배열을 정렬하십시오. 키로 테이블에로드하십시오. 이렇게하면 모든 루프마다 다른 ID에 대해 걱정할 필요가 없습니다. id == 1.etc 인 배열의 모든 항목을 그램으로 그램을 그립니다. – morne

+0

ID 수간에 열 수가 다른 경우 별도의 테이블을 원하십니까? – Mihai

+0

@Mihai, 예. – George

답변

3

id을 키로 사용하여 컨테이너에서 먼저 모든 것을 모아서 그룹화 할 수 있습니다. 그 후, 단지 적절하게 인쇄 : 해당 필드가 그냥 그런 경우에 당신은 당신이 또 다른 차원을해야하고, 대신 name을 누르면, 당신이 필요합니다, 뭔가 더 역동적해야하는 경우가 작동합니다

$data = array(); 
while($row = $results->fetch_assoc()){ 
    $id = $row['id']; 
    $name = $row['name']; 
    $data[$id][] = $name; // group them 
} 

foreach($data as $id => $values) { 
    // each grouped id will be printed in each table 
    echo '<table>'; 
    // header 
    echo '<tr>'; 
     echo '<td>ID</td>' . str_repeat("<td>$id</td>", count($values)); 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Name</td>'; 
    foreach($values as $value) { 
     echo "<td>$value</td>"; 
    } 
    echo '</tr>'; 

    echo '</table><br/>'; 
} 

전체 행을 밀어 넣으십시오.

$results = $db->query('SELECT id, name, age FROM table1'); 

$data = array(); 
while($row = $results->fetch_assoc()){ 
    $id = $row['id']; unset($row['id']); 
    $data[$id][] = $row; // group them 
} 

$fields = array('name', 'age'); 

foreach($data as $id => $values) { 
    // each grouped id will be printed in each table 
    echo '<table>'; 
    // header 
    echo '<tr>'; 
     echo '<td>ID</td>' . str_repeat("<td>$id</td>", count($values)); 
    echo '</tr>'; 

    foreach($fields as $field) { 
     // construct td 
     $temp = ''; 
     echo "<tr><td>$field</td>"; 
     for($i = 0; $i < count($values); $i++) { 
      $temp .= '<td>' . $values[$i][$field] . '</td>'; 
     } 
     echo $temp; // constructed td 
     echo '</tr>'; 

    } 

    echo '</table><br/>'; 
} 
+0

이 작품은 완벽합니다! 덕분에 – George

+0

안녕하세요 @ 고스트, 조금 혼란 스러워요. 이제는 기존의'id'와 일치하는 자체 값을 가진'age'라고'table1'에 다른 열을 추가하려고한다고 가정합니다. 나이 값을 테이블 행으로 html 테이블에 추가하는 방법은 무엇입니까? – George

+1

@ George 당신은 조금 수정해야합니다, 내 revisionb를 확인 – Ghost