Как реализовать функцию поиска через index.php?

Доброго времени суток всем, подскажите как реализовать поиск по сайту. Сейчас есть скрипт вот такого вида
Скрипт поиска
<?php
require_once('engine/db.php');
?>
<html>
<head>
<style>
body{width:615px;font-family:arial;letter-spacing:1px;line-height:20px;}
.tbl-qa{width: 100%;font-size:0.9em;background-color: #f5f5f5;}
.tbl-qa th.table-header {padding: 5px;text-align: left;padding:10px;}
.tbl-qa .table-row td {padding:10px;background-color: #FDFDFD;vertical-align:top;}
.button_link {color:#FFF;text-decoration:none; background-color:#428a8e;padding:10px;}
#keyword{border: #CCC 1px solid; border-radius: 4px; padding: 7px;background:url("demo-search-icon.png") no-repeat center right 7px;}
.btn-page{margin-right:10px;padding:5px 10px; border: #CCC 1px solid; background:#FFF; border-radius:4px;cursor:pointer;}
.btn-page:hover{background:#F0F0F0;}
.btn-page.current{background:#F0F0F0;}
</style>
</head>
<body>
<?php	



    define("ROW_PER_PAGE",2);
    $pdo_conn = new PDO(  DB_DSN, DB_USERNAME, DB_PASSWORD );
	$search_keyword = '';
	if(!empty($_POST['search']['keyword'])) {
		$search_keyword = $_POST['search']['keyword'];
	}
	$sql = 'SELECT * FROM news WHERE title LIKE :keyword OR fullnews LIKE :keyword OR shortnews LIKE :keyword ORDER BY id DESC ';
	
	/* Pagination Code starts */

	$per_page_html = '';
	$page = 1;
	$start=0;
	if(!empty($_POST["page"])) {
		$page = $_POST["page"];
		$start=($page-1) * ROW_PER_PAGE;
	}
	$limit=" limit " . $start . "," . ROW_PER_PAGE;
	$pagination_statement = $pdo_conn->prepare($sql);
	$pagination_statement->bindValue(':keyword', '%' . $search_keyword . '%', PDO::PARAM_STR);
	$pagination_statement->execute();

	$row_count = $pagination_statement->rowCount();
	if(!empty($row_count)){
		$per_page_html .= "<div style='text-align:center;margin:20px 0px;'>";
		$page_count=ceil($row_count/ROW_PER_PAGE);
		if($page_count>1) {
			for($i=1;$i<=$page_count;$i++){
				if($i==$page){
					$per_page_html .= '<input type="submit" name="page" value="' . $i . '" class="btn-page current" />';
				} else {
					$per_page_html .= '<input type="submit" name="page" value="' . $i . '" class="btn-page" />';
				}
			}
		}
		$per_page_html .= "</div>";
	}
	
	$query = $sql.$limit;
	$pdo_statement = $pdo_conn->prepare($query);
	$pdo_statement->bindValue(':keyword', '%' . $search_keyword . '%', PDO::PARAM_STR);
	$pdo_statement->execute();
	$result = $pdo_statement->fetchAll();
	
?>
<form name='frmSearch' action='' method='post'>

<table class='tbl-qa'>
  <thead>
	<tr>
	  <th class='table-header' width='20%'>Title</th>
	  <th class='table-header' width='40%'>Description</th>
	  <th class='table-header' width='20%'>Date</th>
	</tr>
  </thead>
  <tbody id='table-body'>
	<?php
	if(!empty($result)) { 
		foreach($result as $row) {
	?>
	  <tr class='table-row'>
		<td><?php echo $row['title']; ?></td>
		<td><?php echo $row['id']; ?></td>
	  </tr>
    <?php
		}
	}
	?>
  </tbody>
</table>
<?php echo $per_page_html; ?>
</form>
</body>
</html>


Но такой вариант меня не устраивает а знаний чтобы сделать по другому не хватает.
В общем я создал в index.php
case 'search':
    search();
    break;

function search() {
	

	 $results['pageTitle'] = PAGE_TITLE ;
	 require( TEMPLATE_PATH . "/main/search.php" );
}


И создал файл search.php в папке классов подключил его к файлу с доступом к базе

Вопрос в том как мне сделать чтобы серверная часть скрипта находилась в файле класса search.php подключалась в index.php и обрабатывалась в клиентской части шаблона

Заранее спасибо!
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
мало кода
ну хоть в спойлер убрал

ты декомпозируй - сначала научись возврашать из кода в странице, потом из файла, потом из базы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы