listing dati da database a tabella html con php

macchiavelli.ivan

Utente Attivo
7 Dic 2012
67
0
0
Salve a tutti.
Dovrei listare e mettere in classifica i docenti a seconda del numero di lezioni settimanali fatte.
1) Uomini Settimana
2) Donne Settimana
3)Uomini Totale (Dall'inizio dell'anno)
4)Donne Totale (Dall'inizio dell'anno)
Come posso metterli in ordine crescente dall'insegnante con + lezioni a quello con - Lezioni?

HTML:
$anno=$_POST['year']; 
$sett=$_POST['week'];
Sono presi da un form.

Vi posto il Dump delle tabelle.

HTML:
-- Struttura della tabella `lezioni`
--

CREATE TABLE IF NOT EXISTS `lezioni` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `week` int(2) NOT NULL,
  `anno` varchar(4) COLLATE utf8mb4_unicode_ci NOT NULL,
  `lez` int(3) NOT NULL,
  `id_ins` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=19 ;

--
-- Dump dei dati per la tabella `lezioni`
--
HTML:
-- --------------------------------------------------------

--
-- Struttura della tabella `maestri`
--

CREATE TABLE IF NOT EXISTS `maestri` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `citta` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nome` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `cognome` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `sesso` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'uomo',
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `id_scuola` (`citta`),
  KEY `sesso` (`sesso`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=100 ;

--
-- Dump dei dati per la tabella `maestri`
E qua le tabelle html per avere una visuale più chiara:

Primo
Schermata 12-2456274 alle 20.58.38.png

Secondo
Schermata 12-2456274 alle 20.59.21.jpg

Dove si legge "io" andranno i dati
Grazie in anticipo per l'aiuto.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
puoi provare con una query del genere
Codice:
SELECT M.cognome,M.nome,count(L.id) as nmLezioni,anno
FROM lezioni L 
JOIN maestri M ON M.id = L.id_ins
WHERE anno = 2012 && M.sesso = 'uomo'
GROUP BY L.id_ins ORDER BY nmLezioni DESC
 

macchiavelli.ivan

Utente Attivo
7 Dic 2012
67
0
0
Ciao.
Intendi una cosa del genere?

PHP:
<?php
                                include "config.php";
                                    connettiDb();
                $sql="SELECT M.cognome,M.nome,count(L.id) as nmLezioni,anno FROM lezioni L JOIN maestri M ON M.id = L.id_ins WHERE anno = 2012 && M.sesso = 'uomo' GROUP BY L.id_ins ORDER BY nmLezioni DESC";
                 $dati=mysql_query($sql);
                 
?>
e poi:

PHP:
<?php
while($riga=mysql_fetch_array($dati)) { 
                  echo "...";
                   }
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
del genere perche è da testare e perfezionare
io di solito provo le query direttamente nel SQL di phpmyadmin, quando ho il risultato che voglio le faccio eseguire da php e nel while mi costruisco la tabella
In php al posto dell'anno ci andra una variabile con la scelta del menu a tendina e non ho inserito ancora la settimana
ripeto è da provare
 

macchiavelli.ivan

Utente Attivo
7 Dic 2012
67
0
0
Rieccomi.

Ho meditato allungo ed elaborato questo codice:
PHP:
<?php
        
        include "config.php";
        connettiDb();
        
        $anno=$_POST['year']; 
   		$sett=$_POST['week']; 
   		
        $sql="select * from maestri where sesso='uomo'";
                 $dati=mysql_query($sql);
                 $rows=mysql_fetch_array($dati);
        
                foreach ($rows as $row) { 
  $query = "SELECT SUM(lezioni.lez) AS totLez tot FROM lezioni WHERE id_ins = " . $row['id'] . " AND sesso = 1"; 
 
        echo '  <td style="vertical-align: top;">' . trim($row['nome'] . ' ' . $row['cognome']) . '<br />
                  </td>
                  <td style="vertical-align: top;">' . trim($row['scuola'] ) . '<br />
                  </td>
                  <td style="vertical-align: top;">DA INSERIRE<br />';
                  }
?>
che rilascia questo errore:

HTML:
Parse error: syntax error, unexpected $end in...
Confesso che sono un po in alto mare.
Come posso rendere funzionale il tutto? Avete qualche consiglio da darmi?