Attenzione a non cadere nel classico errore
L'oggetto non deve fare TUTTO ma ciò che gli spetta
Se un oggetto ad esempio si occupa di reperire i dati da un database, quell'oggetto NON DEVE effettuare delle echo o altre cose similari... poichè l'oggetto ha un'altro compito

Quindi è normale che tu faccia
Codice PHP:
while (list($id$titolo) = $result->fetch_row())
{
//... codice

E' normale perchè l'oggetto $result ha il compito di manipolare i dati del db, non di mostrarli a video che è compito eventualmente di un altro oggetto che potresti creare allo scopo
Un oggetto tipo
Codice PHP:
class ShowData
{
  private 
$rows;
  public function 
__construct($result)
  {
    
$this->rows $result;
  }
  public 
functoin returnHTML()
  {
     
$html "";
     while (list(
$id$title) = $this->rows->fetch_row())
       
$html .= "ID = $id, TITOLO = $title";
  }

E nel tuo php sostituiresti questa istruzione
while (list($id, $titolo) = $result->fetch_row())

Con
Codice PHP:
$show = new ShowData($result);
echo 
$show->returnHTML(); 
Ovviamente di solito non si crea un oggetto che faccia "così poco" ma è un passo verso la programmazione MVC

Un oggetto/i gestisce il reperimento dei dati
Un oggetto/i gestisce la creazione dell'output in base a tali dati
Un oggetto/i (o il codice base) gestisce la creazione degli oggetti adeguati, la chiamata dei giusti metodi, con i giusti parametri