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:
$sql = "SELECT * FROM mailbox WHERE destinat LIKE '$username' ORDER BY data";
$result = $this->con->query($sql);
$count = $result->num_rows;
if ($count > 0){
echo '<table>';
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>', $row['sender'], '</td>';
echo '<td>', $row['content'], '</td>';
echo '<td>', $row['data'], '</td>';
echo '</tr>';
}
echo '</table>';
$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().