query di aggiornamento tabella

rino63

Nuovo Utente
7 Apr 2015
6
0
0
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:
Codice:
UPDATE brani SET punteggio =(SELECT SUM(valore) FROM`voti`WHERE brani.idBrano =`idBrano`)
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':

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.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Una query di update non ritorna una selezione di record ma si limita ad aggiornare il valore di una o più colonne nella tabella indicata. Inoltre, eseguire una query per ogni riga che devi visualizzare nella tabella non è per nulla performante e rischia di produrti seri rallentamenti nella generazione della pagina.

Sarebbe inoltre utile poter leggere come popoli la variabile $Brani, magari posso suggerirti qualche idea in modo più specifico.
 

rino63

Nuovo Utente
7 Apr 2015
6
0
0
Innanzitutto grazie per l'attenzione!
Provo a spiegarmi:
In effetti il mio obiettivo sarebbe quello di aggiornare solo il campo 'punteggio' dei vari brani, e di mostrarlo poi nella pagina php attraverso il foreach, che hai visto.

La riga di codice che popola $Brani è la seguente:

PHP:
$Brani = Brano::find_all();
che fa riferimento a questo metodo nella classe "Brano":
PHP:
public static function find_all() {
		return self::find_by_sql("SELECT * FROM ".self::$table_name);
}

invece la variabile $brano è data da:
PHP:
$brano = Brano::find_by_id();

che fa riferimento al seguente metodo della classe "Brano":

PHP:
public static function find_by_id($idBrano=0) {
	  global $database;
    $result_array = self::find_by_sql("SELECT * FROM ".self::$table_name." WHERE idBrano=".$database->escape_value($idBrano)." LIMIT 1");
		return !empty($result_array) ? array_shift($result_array) : false;
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
strambotto Query di aggiornamento MS Access 0
PikNuke Query senza aggiornamento pagina Ajax 1
G Problemi con modifica dati in query di aggiornamento MS Access 6
G access 2003: query di eliminazione o aggiornamento? MS Access 2
EffeElle Problema per una query di aggiornamento record php PHP 35
A query di aggiornamento, help please PHP 0
S aiuto in query di aggiornamento Database 0
S Query aggiornamento Database 16
A Query di aggiornamento ed eliminazione in Access Database 1
A Query di aggiornamento in Access MS Access 9
A Query di aggiornamento Database 3
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 26
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
Tommy03 Query tra 3 tabelle MySQL 2
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
max1974 2 query not work MySQL 3
M Ottimizzazione Query PHP 8
I Aiuto query MySQL 8
J [PHP] Visualizzare risultato query stessa pagina PHP 3

Discussioni simili