Просмотр файла search.php

Размер файла: 4.43Kb
<?php
define('_WBLIB',1);
require_once ('inc/core.php');

// Заголовки
$title = 'Поиск';	
require_once ('inc/head.php');
#############################
echo '<div class="title">Поиск статьи</div>';
echo '<div class="link"><form action="'.$_SERVER['PHP_SELF'].'" method="POST" name="form">
Запрос <small>[min 3 , max 60 ]</small><br/>
<input type="text" name="search" maxlenght="60" value="'.htmlspecialchars($_POST['search']).'"/><br/>
Искать по:<br/>
<select name="m">
<option value="1">названию статьи</option>
<option value="2">тексту статьи</option>
</select><br/>
<input type="submit" name="go"value="Искать">
</form></div>';

if (isset($_POST['go']) ) {
     if (empty($_POST['search'])) {
	     $error = 'Запрос не должен быть пустым !<br/>';
	    }
     if (mb_strlen($_POST['search']) < 3 || mb_strlen($_POST['search']) > 64 ) {
	     $error.= 'Длина запроса должна быть не менее 4 символов и не привышать 64 символа !';
		}
    }
	 	 if ($error) {
		    echo '<div class="error">';
			echo $error;
			echo '</div>';
			require_once ('inc/foot.php');
			exit();
			}

	              $mm = isset ($_POST['m']) ? intval($_POST['m']) : '';
				  $mm = $mm ? $mm : rawurldecode(trim($_GET['m']));
				  
	 			 $search = isset ($_POST['search']) ? trim($_POST['search']) : '';
				 $search = strtr($search, array('_' => '\\_', '%' => ' ','$' => ' ', '*' => '%'));
                 $search = $search ? $search : rawurldecode(trim($_GET['search']));
				 if ($search) {
				 $search_db = 'LIKE \'' . mysql_real_escape_string('%' . $search . '%') . '\'';
				 $zap = '`text`';
				 if ($_POST['m'] == 1 || $_GET['mm'] == 1) $zap = '`name`';
				 if ($_POST['m'] == 2 || $_GET['mm'] == 2) $zap = '`text`';
				 
                 $posts = mysql_result(mysql_query('SELECT COUNT(*) FROM `article` WHERE  '.$zap.' '.$search_db.' AND `type` = "2"'), 0); 
                 $total = intval(($posts - 1) / $num) + 1; 
                 if($page > $total) $page = $total; 
                 $start = $page * $num - $num; 
                 $result = mysql_query('SELECT * FROM `article` WHERE '.$zap.' '.$search_db.' AND `type` = "2" ORDER BY `id` DESC LIMIT '.$start.', '.$num.'');
				 $counter= $start;
				 if ($posts > 0) {
	             while ($ms = mysql_fetch_array($result)) { 
                      $counter++;	             
	                  echo '<div class="link">'.$counter.'. '.$ms['name'].'<br/>'.preview_desc($ms['text']).'<br/><a href="article.php?id='.$ms['id'].'">Читать полностью</a></div>';
				    }
if ($page != 1) $pervpage = ' <a href= "search.php?search='.$search.'&mm='.$mm.'&page='. ($page - 1) .'">Назад</a> '; 
// Проверяем нужны ли стрелки вперед 
if ($page != $total) $nextpage = ' <a href="search.php?search='.$search.'&mm='.$mm.'&page='. ($page + 1) .'">Вперед</a>'; 
if ($page !=1 AND $page != $total) $i = '|';
// Перваяя и последняя страницы
if ($page - 4 > 0) $first = '<a href="search.php?search='.$search.'&mm='.$mm.'&page=1">1</a>...';
if ($page + 4 <= $total) $last = '...<a href="search.php?search='.$search.'&mm='.$mm.'&page='.$total.'">'.$total.'</a>';
// Находим две ближайшие станицы с обоих краев, если они есть 
if($page - 2 > 0) $page2left = ' <a href= "search.php?search='.$search.'&mm='.$mm.'&page='. ($page - 2) .'">'. ($page - 2) .'</a> '; 
if($page - 1 > 0) $page1left = '<a href= "search.php?search='.$search.'&mm='.$mm.'&page='. ($page - 1) .'">'. ($page - 1) .'</a> '; 
if($page + 2 <= $total) $page2right = ' <a href="search.php?search='.$search.'&mm='.$mm.'&page='. ($page + 2) .'">'. ($page + 2) .'</a>'; 
if($page + 1 <= $total) $page1right = ' <a href="search.php?search='.$search.'&mm='.$mm.'&page='. ($page + 1) .'">'. ($page + 1) .'</a>';

// Вывод меню 
if ($posts > $num) {
echo '<div class="nav">'.$pervpage.$first.$page2left.$page1left.'['.$page.']'.$page1right.$page2right.$last.$nextpage.'</div>';
} 
					
				} else {
                     echo '<div class="link">Ничего не найдено !</div>';
                   }				
echo '<div class="title">Совпадений : '.$posts.'</div>';
}
echo '<div class="bar"><a href="'.$home.'">Главная</a></div>';
require_once ('inc/foot.php');
?>