Всем Привет!
Сделан поисковик на сайте. По словам ищет и находит.
Теперь мне надо добавить календарь. Чтобы и по дату находил. Но не смог.
Вот код где находит по словам:
Это index.php
<form name="search" method="get" action="/search">
<input type="date" name="calendar" min="2016-09-29">
<input type="search" name="query">
<input type="submit" value="Поиск"></input>
</form>
А это search.php где срабатывает при нажатии submit
<?
$where = array(
1 => array('title' => '',
'sql' => "SELECT * FROM s_element_all_articles WHERE `content`<>'' AND (INSTR(`date`, '#SEARCH#') OR INSTR(`content`, '#SEARCH#')) "),
);
$search = isset($_GET['query']) ? $fn->handle($_GET['query']) : '';
$calendar = isset($_GET['calendar']) ? $fn->handle($_GET['calendar']): '';
$out = array();
if($search != '' || $calendar != '') {
if(empty($_REQUEST['where'])) $_REQUEST['where'] = array_keys($where);
$result = array();
if(is_array($_REQUEST['where'])){
$index = 0;
$countt = 0;
$count = array();
$parsed = array();
$start = 0;
$total_count = 0;
foreach($_REQUEST['where'] as $w) {
if(!isset($where[$w]))
continue;
$where[$w]['sql'] = str_replace('#SEARCH#', $search, $where[$w]['sql']);
if(!preg_match("/^SELECT(.+?)FROM\s+([\w`]+)(\s+WHERE(.+))?$/i", $where[$w]['sql'], $ok))
continue;
$parsed[$w] = array('what' => $ok[1], 'table' => $ok[2], 'where' => $ok[3] ? $ok[3] : '');
$total = $mysqli->query("SELECT COUNT(*) AS `total` FROM ".$parsed[$w]['table']." ".$parsed[$w]['where'])->fetch_assoc();
$total = $total['total'];
$total_count += $count[$w] = $total;
$r = $mysqli->query($where[$w]['sql']);
if($start >= 0 && $r->num_rows) {
while($e = $r->fetch_object()) {
switch ($w){
case 1:
$result[] = array('title' => $where[$w]['title'], 'link' => '<a href="article/official/'.$e->id.'">'.$e->title.'</a>', 'type' => $w);
break;
default:
break;
}
$index = count($result);
}
$start = 0;
} else {
$start -= $count[$w];
}
}
}
if($result) {
$out[] = '
<div class="text-naideno">
<h3>Найдено '.$total_count.' '.$fn->get_end($total_count, array('совпадение', 'совпадения', 'совпадений')).' по запросу <span class="search-color"> '.$calendar.' '.$search.' </span></h3>
</div>
';
$title = NULL;
foreach($result as $r) {
if($r['title'] != $title) {
$countt = 0;
$title = $r['title'];
// $out[] = '<h3>Раздел "'.$title.'"</h3>';
}
$out[] = '<div class="search-result">';
$out[] = '<p><span>'.(++$countt) .'.</span>'.$r['link'].'</p>';
$out[] = '<p>'.$r['title'].'</p>';
$out[] = '</div>';
}
} else {
$out[] = 'По вашему запросу ничего не найдено..';
}
} else {
$out[] = 'Введите параметры запроса..';
}
echo join("\r\n", $out);
?>
И там для функции fn.php:
function handle($s){
global $mysqli;
$s = strip_tags($s);
$s = htmlspecialchars($s);
$s = $mysqli->real_escape_string($s);
return trim($s);}
Куда что добавить? Спасибо