Scusate il titolo equivoco.
Ora mi spiego per benino.
Tabella impiegati
codice:
id cognome posizione
1 Rossi Commesso
2 Bianchi Amministrativo
3 Verdi Commesso
4 Gialli Magazziniere
5 Rossini Amministrativo
6 Giallini Capo Reparto
7 Verdini Commesso
Ciò che vorrei ottenere dalla mia query
codice:
Amm.vo Capo Reparto Commesso Magazziniere
Bianchi Giallini Rossi Gialli
Rossini Verdi
Verdini
Non venendo a capo della query ho rigirato il tutto in php...
Codice PHP:
$query = mysql_query("select posizione,group_concat(cognome order by cognome separator ',') as nominativi
from impiegati
group by posizione
order by posizione asc") or die(mysql_error() );
$array = array();
while ($row = mysql_fetch_assoc($query) )
$array[$row['posizione']] = $row['nominativi'];
$occorrenze = array();
foreach($array as $nomi)
$occorrenze[] = substr_count($nomi,',') == 0 ? 1 : substr_count($nomi,',') + 1;
$str = '<table>';
$str.= '<thead>';
foreach(array_keys($array) as $posiz)
$str.= "<th>$posiz</th>";
$str.= '</thead>';
$str.= '<tbody>';
for ($i = 0, $max = max($occorrenze); $i < $max; $i++) {
$str.= '<tr>';
foreach($array as $key => $nomi) {
$array_nomi = explode(',',$nomi);
$str.= isset($array_nomi[$i]) ? '<td>'.$array_nomi[$i].'</td>' : '<td></td>';
}
$str.= '</tr>';
}
$str.= '</tbody>';
$str.= '</table>';
echo $str;
...ma sarei curioso di sapere se è possibile ottenere un risultato simile tramite sql?
Spero che qualcuno abbia già affrontato un problema simile perchè è da stamattina che
Grazie.