Я немного новичок в PHP, поэтому меня это немного смущает. Я предполагаю, что это не ошибка в коде, а логика кода.
Здесь используются два файла шаблона:
Поиск — который отображает страницу поиска.
search_item — форматирование возвращаемых результатов поиска.
Я сбросил выполнение запроса, и он возвращает значение true, поэтому я уверен, что запрос выполнен успешно и получил данные из формы.
Ниже приведена функция для страницы Search.php. (Отображается в URL как index.php? Action = search from controller)
public function handleAction() {
global $user, $config;
$database = Database::getDatabase();
$driver = $database->getDriver();
$search = $_POST['keywords'];
$stmt = $driver->prepare('SELECT * FROM clansoc_clans WHERE clan_name LIKE :keywords');
$stmt->bindValue(':keywords', '%' . $search . '%');
$stmt->execute();
$results = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$results[] = array(
'id' => $row['id'],
'clan_name' => htmlspecialchars($row['clan_name'], ENT_QUOTES),
'short_desc' => htmlspecialchars($row['clan_short_desc'], ENT_QUOTES),
'clan_avatar' => $row['clan_avatar']
);
}
$results_list_registry = new ViewRegistry();
$results_list = new View('Results List', $results_list_registry, false);
$results_list_contents = "";
//$i = $offset;
foreach($results as $result) {
$results_list_result_registry = new ViewRegistry();
$this->view->getViewRegistry()->setVariable('id', $result['id']);
$this->view->getViewRegistry()->setVariable('name', $result['clan_name']);
$this->view->getViewRegistry()->setVariable('desc', $result['short_desc']);
$this->view->getViewRegistry()->setVariable('avatar', $result['clan_avatar']);
$results_list_result = new View('Results List Result', $results_list_result_registry);
$results_list_result->setView('search_item');
$results_list_contents .= $results_list_result->export(false);
}
$results_list->setView($results_list_contents);
$this->view->getViewRegistry()->setVariable('results', $results_list);
}
Мой вопрос в более простых терминах:
Почему скрипт не отображает результаты запроса?
Задача ещё не решена.
Других решений пока нет …