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.
 
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
 
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 "...";
                   }
?>
 
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
 
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?
 

Discussioni simili