Ciao a tutti.
Ho due tabelle così formate:
user_mansioni
id user id_mansione livello 1 rossi 160 3 2 rossi 100 5 3 rossi 50 2
log_mansioni
id user id_mansione livello_comprato 1 rossi 160 1 2 rossi 160 1 3 rossi 50 1
Il campo di riferimento tra le due tabelle è id_mansione, così la prima cosa che faccio è raggruppare i risultati comuni partendo dalla tabella log_mansioni.
Il codice mi trova tutte le corrispondenze tra le due tabelle MA NON MI CALCOLA IL SUM.Codice PHP:
$query = gdrcd_query("SELECT log_mansioni.*, user_mansioni.*, SUM(log_mansioni.livello_comprato) AS totale
FROM log_mansioni
INNER JOIN user_mansioni ON user_mansioni.id_mansione = log_mansioni.id_mansione
WHERE log_mansioni.nome = 'rossi'
GROUP BY log_mansioni.id_mansione;", 'result');
Una volta estrapolate le correlazioni, ho aperto un ciclo while perché dovrei fare un conteggio del campo livello_comprato delle corrispondenze trovare e sottrarle dal campo livello della tabella user_mansioni.
Nel caso specifico, le due corrispondenze sono 160 e 50:
(log_mansioni) 160 = 1+1 = 2 -> (user_mansioni) 3-2 = 1
(log_mansioni) 50 = 1 -> (user_mansioni) 2-1 = 1
Ho provato con:
perché mi restituisceCodice PHP:
$minus = gdrcd_query(" UPDATE user_mansioni SET livello = livello - ". $query['totale'] ." WHERE nome = 'rossi' AND id_mansione = '". $query['id_mansione'] ."' ");
Citazione:
Fatal error: Cannot use object of type mysqli_result as array