Wir zeigen dir, wie man eine Suchfunktion für Datenbanken erstellt. Dieser Codeschnipsel zeigt, wie man gezielt Einträge per Volltext- oder LIKE-Suche findet.
<?php
$mysqli = new mysqli("localhost", "root", "", "testdb");
if ($mysqli->connect_error) {
die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}
$search = "";
$results = [];
if (isset($_GET['q'])) {
$search = $mysqli->real_escape_string($_GET['q']);
$query = "SELECT * FROM users WHERE name LIKE '%$search%' ORDER BY id ASC";
$res = $mysqli->query($query);
if ($res) {
$results = $res->fetch_all(MYSQLI_ASSOC);
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Suchfunktion</title>
</head>
<body>
<h2>Benutzer suchen</h2>
<form method="get" action="">
<input type="text" name="q" placeholder="Name suchen" value="<?= htmlspecialchars($search) ?>">
<button type="submit">Suchen</button>
</form>
<hr>
<?php if ($search && empty($results)): ?>
<p>Keine Ergebnisse für "<?= htmlspecialchars($search) ?>" gefunden.</p>
<?php elseif (!empty($results)): ?>
<table border="1" cellpadding="8">
<tr>
<th>ID</th>
<th>Name</th>
</tr>
<?php foreach ($results as $row): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= htmlspecialchars($row['name']) ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
</body>
</html>