/* Соединение, выбор БД */
include ("file/db.php");
$sh = $_POST["t1"];
$sh2 = $_POST["t2"];
$sh3 = $_POST["t3"];
$sh4 = $_POST["t4"];
$tf1 = $_POST["f1"];
$tf2 = $_POST["f2"];
$tf3 = $_POST["f3"];
$tf4 = $_POST["f4"];
/*создаю масивы*/
$fld = array($tf1, $tf2, $tf3, $tf4); $val = array($sh, $s2, $s3, $s4);
$_SESSION["fld"]=$f;
$_SESSION["val"]=$v;
if (isset($_GET["page"])) {
$f = $_SESSION["f"];
$v = $_SESSION["v"];
}
/*функция постраничного вывода*/
function link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок;
// Для придания ссылкам стиля
$style = 'style="color: #808000; text-decoration: none; align=center;"';
$begin = $page - intval($show_link / 2
); unset($show_dots); // На всякий случай :) // Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1
) { echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции
// Подготовка к постраничному выводу
$ppage = 20;
$perpage = $ppage; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0
)) { $page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$query = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%') and (".$f[1]." like '%".$v[1]."%')
and (".$f[2]." like '%".$v[2]."%')
and (".$f[3]." like '%".$v[3]."%')") or
die ('<b>eror');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
link_bar($page, $count, $pages_count, 10);
// Вывод информации из базы данных
$result = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%') and (".$f[1]." like '%".$v[1]."%')
and (".$f[2]." like '%".$v[2]."%')
and (".$f[3]." like '%".$v[3]."%')") ORDER BY id, title limit ".$start_pos.", ".$perpage."") or die('Помилка!');
while ($row = mysql_fetch_array($result)) {
echo "<hr/>".++$start_pos.". ".$row['tit'].". ".$row['au']."., ".$row['sub'].".: ".$row['ed'].".- ".$row['c']."., ".$row['pub'].". ".$row['publ'].". -".$row['pag']." <br>\n";
}
/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);