Salve a tutti,
Nel mio DB tra le altre, ho queste 2 tabelle: 'brani' e 'voti'.
Nella tabella 'voti' vengono memorizzati i campi 'valore', 'idBrano' e 'idUser'.
Nella tabella 'brani' sono presenti vari campi descrittivi (titolo, autore,album, ecc...) oltre al campo 'punteggio', che è dato dalla somma dei voti (campo 'valore') ottenuti dal brano.
in PHPMyAdmin ho scritto una query per aggiornare il campo punteggio:
e funziona.
Ora, vorrei trovare il modo di aggiornare la pagina automaticamente, ogni volta che vengono inseriti nuovi voti,
e ho scritto questo metodo all'interno della classe 'Brano':
il suddetto metodo viene chiamato all'interno della pagina 'lista_brani.php':
Nel browser però la colonna punteggio rimane vuota, e non compare nessun messaggio d'errore.
Cosa Manca, o cos'è sbagliato?
Spero di essere stato chiaro, e confido nel vostro aiuto.
Nel mio DB tra le altre, ho queste 2 tabelle: 'brani' e 'voti'.
Nella tabella 'voti' vengono memorizzati i campi 'valore', 'idBrano' e 'idUser'.
Nella tabella 'brani' sono presenti vari campi descrittivi (titolo, autore,album, ecc...) oltre al campo 'punteggio', che è dato dalla somma dei voti (campo 'valore') ottenuti dal brano.
in PHPMyAdmin ho scritto una query per aggiornare il campo punteggio:
Codice:
UPDATE brani SET punteggio =(SELECT SUM(valore) FROM`voti`WHERE brani.idBrano =`idBrano`)
Ora, vorrei trovare il modo di aggiornare la pagina automaticamente, ogni volta che vengono inseriti nuovi voti,
e ho scritto questo metodo all'interno della classe 'Brano':
PHP:
public function calcola_punteggio() {
global $database;
$sql = mysqli_query($database->connection, "UPDATE".self::$table_name. " SET " .$this->punteggio. " =
(SELECT SUM(valore) FROM `voti`WHERE brani.idBrano = voti.idBrano)");
return $sql;
}
il suddetto metodo viene chiamato all'interno della pagina 'lista_brani.php':
HTML:
<table>
<tr>
<th>Titolo</th>
<th>Autore</th>
<th>Album</th>
<th>Anno</th>
<th>Punteggio</th>
<th>file</th>
<th>Ascolta</th>
<th>Vota</th>
</tr>
PHP:
<?php foreach ($Brani as $brano):
?>
<tr>
<td><?php echo $brano->titolo;?></td>
<td><?php echo $brano->autore;?></td>
<td><?php echo $brano->album;?></td>
<td><?php echo $brano->anno;?></td>
<td><?php echo $brano->calcola_punteggio(); ?></td>
<td><?php echo $brano->filename;?></td>
<td><audio controls="true"><source src="../<?php echo $brano->file_path();?>"/></audio></td>
<td><a href="vota_brano.php?idBrano=<?php echo $brano->idBrano; ?>&idUser=<?php echo $_GET['idUser']); ?>">
<button type="button">vota!</button></td></a>
</tr>
<?php endforeach; ?>
</table>
Nel browser però la colonna punteggio rimane vuota, e non compare nessun messaggio d'errore.
Cosa Manca, o cos'è sbagliato?
Spero di essere stato chiaro, e confido nel vostro aiuto.