foreachを使用してmysqlテーブルの内容を出力するのに問題があります。テーブル(tr、td)などはmysqlテーブルのエントリごとに出力されますが、tdタグと/ tdタグの間には何もありません。ここで、各$itemがエコーされます。
$sql = 'SELECT domain FROM domainsuggestions';
$domains = mysqli_query($link, $sql); // get domain suggestions from table
<table>
<tr>
<td>Domain Suggestions</td>
</tr>
<?php foreach ($domains as $item): ?>
<tr>
<td><?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?></td>
</tr>
<?php endforeach; ?>
</table>