Salut
Din ce am inteles, se pare ca trebuie facut un Select cu Join in mai multe tabele, ca sa iei numele profesorului si specializarea. Nu stiu cum ar trebui acel Select, dar daca reusesti sa-l faci, ramane partea de aranjare a datelor returnate in PHP.
Ca idee, cred ca se poate obtine acea aranjare a datelor daca sunt intai stocate intr-un array multiplu, cu aceasta forma:
Cod: Selectaţi tot
$profs['profesor'] => array('specializare' => array('an_studiu' => array('semestru '=> array('disciplina1', 'disciplina2'))));
Ca sa adaugi si sa parcurgi /afisezi datele selectate din MySQL intr-un astfel de Array, bucla while() care parcurge datele selectate, si parcurgere array pt afisare, trebuie sa fie cam asa
Cod: Selectaţi tot
// Selectarea randurilor din tabelul MySQL
$sql = "SELECT ...";
$result = mysql_query($sql);
// adaugare date in array
$profs = array();
while($row = mysql_fetch_array($result)) {
$prof[$row['col_profesor']][$row['col_specializare']][$row['an_studiu']][$row['semestru']][] = $row['disciplina'];
}
//parcurgere date si aranjare pt afisare
$re = '';
foreach($profs as $col_profesor => $col_specializare) {
$re .= 'Profesor: '. $col_profesor.'<br>';
foreach($col_specializare as $key_sp in $an_studiu) {
$re .= 'Specializarea: '. $key_sp.'<br>';
foreach($an_studiu as $key_an in $semestru) {
$re .= 'An: '. $key_an.'<br>';
foreach($semestru as $key_sm in $disciplina) {
$re .= 'Semestru: '. $key_sm.'<br>';
for($i=0; $i<count($disciplina); $i++) {
$re .= ($i + 1). '. '. $disciplina[$i].'<br>';
}
}
}
}
}
echo $re; // afisare
- Pare destul de complicat, asta daca reusesti sa aplici comanda Select potrivita care sa returneze acele date la fiecare profesor.
Doar cu atat am stiut sa incerc sa ajut.