Mi sà che mi sono confuso anche io: ero convinto che la tua classe usasse mysql, invece usi -a ragione- mysqli.
Allora.. il fetch_assoc non è un metodo della classe mysqli, ma di
mysqli_result.
A tornare mysqli_result è il metodo query ( $this->con->query() ), di conseguenza esso viene archiviato in $result, quindi è lui che ha il metodo fetch_assoc().
Inoltre, il numero di righe estratte con la query di selezione è memorizzato nella proprietà num_rows che si ritrova sempre su $result.
Di conseguenza è così che dovresti svolgere la query:
PHP:
#> Realizzazione Query
$sql = "SELECT * FROM mailbox WHERE destinat LIKE '$username' ORDER BY data";
$result = $this->con->query($sql);
$count = $result->num_rows;
#> Controllo Errori
if ($count > 0){
#> Formatto una tabella html
echo '<table>';
#> Recupero Informazioni
while ($row = $result->fetch_assoc()) {
#> Formatto una nuova riga nella tabella
echo '<tr>';
echo '<td>', $row['sender'], '</td>';
echo '<td>', $row['content'], '</td>';
echo '<td>', $row['data'], '</td>';
echo '</tr>';
}
#> Chiudo la formattazione della tabella
echo '</table>';
#> Libero le risorse impiegate dalla query
$result->free();
}
else die('Errore Mysql: '. $this->con->error());
}
Il metodo per liberare le risorse della classe mysqli_result, contenuto in $result, è
free() e non close().