вопрос
Есть допполе "Год выхода", значения этого допполя используются как перекрестные гиперссылки. И получается, что при переходе по ссылке http://мойсайт/xfsearch/2014/ выводятся не только новости, в которых значения допполя "Год выхода" 2014, а и проскакивают новости с годом 2013, 2012... (не все, только некоторые). Почему нет жесткого отбора по году? Где копать, что бы заставить движок выводить только 100% совпадения допполя?
Engine.php
Попробуй так
Попробуй так
elseif ($do == 'xfsearch') {
// Определение искомого слова число или текст
$assearch = (intval($xf)) ? "xfields regexp '[[:<:]](" . $xf . ")[[:>:]]'" : "xfields LIKE '%{$xf}%'";
//Старый запрос
/* $sql_select = "SELECT SQL_CALC_FOUND_ROWS p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}xfields LIKE '%{$xf}%' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']; */
// новый запрос
$sql_select = "SELECT SQL_CALC_FOUND_ROWS p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}{$assearch} AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];