我对PHP有点新意,所以这让我有些困惑。我认为这不是代码中的错误,而是代码逻辑。
这里有两个模板文件:
搜索 - 显示搜索页面。 search_item - 返回搜索结果的格式。
我已经转储了查询的执行,它返回true,这使我相信查询成功并从表单中接收了数据。
以下是Search.php页面的功能。 (在URL中显示为index.php?action =从控制器搜索)
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);
}
我的问题更简单:
为什么脚本不显示查询结果?