Всё верно сделано, в GET запросах нет ничего плохого, так любой поиск работает.
Вот самый простой пример поиска:
<form action="/search" accept-charset="utf-8">
<p><input name="query" type="text"></p>
<p><button type="submit">Поиск</button></p>
</form>
<?php
if (isset($_GET['query']) && is_string($_GET['query'])) {
$stmt = $db->prepare('SELECT name FROM users WHERE name LIKE :name LIMIT 10');
$stmt->bindValue(':name', '%' . $_GET['query'] . '%');
$stmt->execute() or ...
$result = $stmt->fetchAll();
}