2014-06-17 32 views
-2

我有一個staff_id和主題表,我想根據主題顯示所有人員。選擇字段並將它們分組到php和mysql中的類別中

我的表 enter image description here

結果我想

Physics 
    -001 
    -004 
    -006 
Chemistry 
    -002 
    -009 
Biology 
    -003 
    -008 
Mathematics 
    -005 

我的代碼

$q = mysql_query("Select staff_id from my_table"); 
    while($row = mysql_fetch_array($q)){ 
     echo $subject .'</br>'; 

     echo $staff_id.'</br>'; 

    } 

但是這並沒有給我想要的結果。 有幫助嗎?

+3

請不要使用'mysql_ *'功能,因爲它們已被棄用。改爲使用'PDO'或'mysqli_ *'。 – TiMESPLiNTER

+0

'GROUP BY'會幫助你一點點 – bartek

+1

好的,我會移動到mysqli_ *,感謝您的建議@TiMESPLiNTER – dxcoder1

回答

1

這樣的事情?

$q = mysql_query("SELECT `staff_id`, `subject` FROM `my_table`;"); 
$data = array(); 
while($row = mysql_fetch_array($q)){ 
    $data[$row['subject']][] = '-'.$row['staff_id']; 
} 
print_r($data); 

或者呼應了行

foreach($data as $heading => $rows){ 
    echo $heading.'<br>'; 
    foreach($rows as $row){ 
     echo $row.'<br>'; 
    } 
} 
+0

這似乎工作,但有一個領域,我想添加到這個數組,我該怎麼做。 – dxcoder1

+0

感謝這工作 – dxcoder1

2

你需要的是ORDER BY

查詢更改爲:

SELECT STAFF_ID, SUBJECT FROM my_table ORDER BY SUBJECT, STAFF_ID 

所以,你以正確的順序與他們合作獲得的記錄。

0
$result=mysql_query("SELECT * from table GROUP BY subject"); 

    while($ext=mysql_fetch_object($result)) { 
     $query=mysql_query(" SELECT * from table WHERE subject='".$ext->subject."'"); 
     echo $ext->subject; 

     while($res=mysql_fetch_object($query)) { 
      echo $res->staff_id; 
     }  
    } 
0

你可以寫你這樣的代碼如下:

$q = mysql_query("SELECT * FROM my_table ORDER BY SUBJECT, STAFF_ID"); 
while($row = mysql_fetch_array($q)){ 
//Do staff 
} 
0

下面的代碼應該有所幫助。您應該將每個主題分隔到查詢中的單獨數組中。一旦你的查詢完成後,你應該遍歷主題數組,然後在每個工作人員ID中進行迭代。

$subjects = array(); 
$q = mysql_query("Select staff_id from my_table"); 
    while($row = mysql_fetch_array($q)){ 
     if ($subjects[$row['SUBJECT']] == nil) { 
      $subjects[$row['SUBJECT']] = array(); 
     } 
     array_push($subjects[$row['SUBJECT']], $row['STAFF_ID']); 
    } 
foreach ($subjects as $key=>$value) { 
    echo $key . '<br>; 
    foreach ($vaue as &$staff) { 
     echo $staff . '<br>'; 
    } 
} 
相關問題