[PHP] Media valori presi da una query

  • Creatore Discussione Creatore Discussione Tommy03
  • Data di inizio Data di inizio

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
21
Vicenza
Salve, ho un database con 2 tabelle:
richieste (con 2 campi: fromuser (l'utente che ha inviato la richiesta) e touser (l'utente che la riceve))
recensioni (con 2 campi: fromuser(l'utente che dà il proprio voto) e voto (il numero da 1 a 5 dato dall'utente).
Ho scritto questo codice:
PHP:
$que5=$conn->prepare("SELECT  fromuser FROM richieste WHERE touser='$utente'");
$que5->execute();
while($getque5=$que5->fetch(PDO::FETCH_ASSOC)){
$usidd=$getque5['fromuser'];
$que6=$conn->prepare("SELECT AVG(voto) AS media FROM recensioni WHERE fromuser='$usidd'");
$que6->execute();
$getque6=$que6->fetch(PDO::FETCH_ASSOC);
$media = $getque6['media'];
echo $usidd;
echo ': media';
echo $media;
echo '<br>';
}
In questo modo visualizzo correttamente le medie dei voti di tutte le persone che hanno inviato la richiesta all'utente della sessione, però ora vorrei che anziché visualizzare ad esempio:
Tizio: media 5
Caio: media 1
Si potesse vedere un'altra riga con scritto:
Media totale (Tizio, Caio): 3
Come potrei fare?
Grazie
 
Farei così invece di iterare ed effettuare altre query....
PHP:
$query="SELECT  fromuser,
                (SELECT AVG(voto) AS expr1 FROM recensioni WHERE fromuser=richieste.uid) as media,
 FROM richieste WHERE touser='$utente'";
$que5=$conn->prepare($query);
$result=$que5->fetchAll();
$media_Tot=0;
foreach($result as $items){
echo $items['usidd'];
echo ': media';
echo $items['media'];
echo '<br>';
    $media_Tot+=$items['media'];
}

echo 'Media Totale : '.$media_Tot;
 
Fai una subselect partendo dai dati della prima select... Ossia
Per ogni riga utente fai la media dei valori nella seconda tabella...
 

Discussioni simili