Tach!
Auch diese vielen, seriellen echos sind Unsinn, eines genügt. Dann ist es Unsinn, die Strings zusammenzusetzen, denn echo kann eine Liste kommagetrennter Strings ausgeben.
Man kann auch PHPs eingebaute Template-Funktionalität verwenden.
Beispiel:
<h1>Anwender</h1>
<?php if(count($users) > 0): ?>
<table>
<thead>
<tr>
<th>Id</th>
<th>Vorname</th>
<th>Nachname</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user): ?>
<tr>
<td><?= htmlspecialchars($user->Id); ?></td>
<td><?= htmlspecialchars($user->FirstName); ?></td>
<td><?= htmlspecialchars($user->LastName); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<p>Keine Daten gefunden.</p>
<?php endif; ?>
Und vor allem sollte man den Kontextwechsel beachten. In dem Fall die HTML-gerechte Behandlung der in HTML einzufügenden Daten.
dedlfix.