innanzi tutto alcune piccole raccomandazioni: 1) non usare come charset utf8mb4_unicode_ci che può creare ambiguità ma usa il più semplice utf8_unicode_ci; 2) le tabelle non sono molto ben strutturate, c'è perdita di spazio, io ti consiglio di farle così:
codice:
-- Struttura della tabella `lezioni`
--
CREATE TABLE IF NOT EXISTS `lezioni` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`week` TINYINT(2) UNSIGNED NOT NULL,
`anno` SMALLINT(4) UNSIGNED NOT NULL,
`lez`SMALLINT(3) UNSIGNED NOT NULL,
`id_ins` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=19 ;
--
-- Dump dei dati per la tabella `lezioni`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `maestri`
--
CREATE TABLE IF NOT EXISTS `maestri` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`citta` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL,
`nome` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`cognome` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`sesso` TINYINT(1) UNSIGNED NOT NULL VALUE=1,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `id_scuola` (`citta`),
KEY `sesso` (`sesso`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=100 ;
per quanto riguarda la tua richiesta, per sapere ad esempio quanti insegnanti maschi ci sono per anno e settimana basta quanto segue (se id_ins è un codice insegnante):
Codice PHP:
//preleva dalla tabella maestri i singoli record uno per uno
echo '<table><tr>'<td colspan="3">[img]scuola.jpg[/img]</td></tr>';
echo '<tr><td>[b]Nome[/b]</td>[b]Scuola[/b]</td>[b]N° Lez.[/b]</td></tr>';
foreach ($rows as $row) {
$query = "SELECT SUM(lezioni.lez) AS totLez tot FROM lezioni WHERE id_ins = " . $row['id'] . " AND sesso = 1";
//estrae dalla tabella lezioni il numero lezioni in un anno e l'anno di ogni insegnante nella riga $row1
echo '<tr><td>' . trim($row['cognome'] . ' ' . $row['nome'] . '</td><td>Scuola Giuseppe Garibaldi</td><td>' . $row1['totLez'] . '</td></tr>';
//ecc ecc
}