БД MySQL
Подскажите, пожалуйста!В чем может быть проблема:
Есть скрипт поиска по БД, пользователь через форму вводит слово для поиска $search. Выводятся результаты в виде таблицы. Написала постраничный вывод результатов запроса пользователя из БД. Все ищет, первую страницу выводит правильно, кол-во ссылок
тоже правильное, но при переходе ко второй и последующим страницам - пишет: "Вы ничего не ввели в окно поиска. Пожалуйста, повторите поиск." Т.е. переменная $search далее первой страницы не передается. Почему????
Помогите найти ошибку, плииизз!!!
Вот часть кода:
Код
<?php
//Введенное пользователем значение
$search = $_POST['search'];
function link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - количество отображаемых ссылок;
// Если страница всего одна-ничего не выводим
if ($pages_count == 1)
return false;
$sperator = ' ';
$style = 'style="color: #003399; text-decoration: none;"';
$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++) // Основнoй цикл вывода ссылок
{
$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;
} // Конец функции
if ($search <> '')
{
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
$sql = "SELECT $table_columns_list FROM $table_unique_list WHERE 1=2";
for ($i=0; $i < count($table_columns); $i++) {
$sql .= ' or ' . $table_columns[$i] . " LIKE '%$search%'";
}
// Общее количество информации
$count = mysql_num_rows(mysql_query($sql));
if ($count == 0)
{
echo "<br>Вы искали '$search'. Поиск не дал результатов.
Попробуйте изменить критерии поиска.</br>";
}
elseif ($count > 0)
{
echo "</br>";
echo "Вы искали '$search'. Найдено $count документов.";
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вывод информации из базы данных
echo "</br>";
$sql.=' LIMIT '.$start_pos.', '.$perpage;
$result = mysql_query($sql) or die('Error!');
//echo $sql;
echo "<table border=1>";
echo "<tr>";
for ($i=0; $i < count($columns_en); $i++)
{
echo "<td>$columns_rus[$i]</td>";
}
echo "</tr>";
echo "<tr>";
while ($row = mysql_fetch_array($result))
{
for ($i=0; $i < count($columns_en); $i++)
{
echo "<td>".$row[$columns_en[$i]]." </td>";
}
echo "</tr>";
}
echo "</table>";
// Вызов функции, для вывода ссылок на экран
link_bar($page, $count, $pages_count, 10);
} }
elseif ($search == '')
{
echo " <br> Вы ничего не ввели в окно поиска. Пожалуйста, повторите поиск. </br>";
}
?>
//Введенное пользователем значение
$search = $_POST['search'];
function link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - количество отображаемых ссылок;
// Если страница всего одна-ничего не выводим
if ($pages_count == 1)
return false;
$sperator = ' ';
$style = 'style="color: #003399; text-decoration: none;"';
$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++) // Основнoй цикл вывода ссылок
{
$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;
} // Конец функции
if ($search <> '')
{
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
$sql = "SELECT $table_columns_list FROM $table_unique_list WHERE 1=2";
for ($i=0; $i < count($table_columns); $i++) {
$sql .= ' or ' . $table_columns[$i] . " LIKE '%$search%'";
}
// Общее количество информации
$count = mysql_num_rows(mysql_query($sql));
if ($count == 0)
{
echo "<br>Вы искали '$search'. Поиск не дал результатов.
Попробуйте изменить критерии поиска.</br>";
}
elseif ($count > 0)
{
echo "</br>";
echo "Вы искали '$search'. Найдено $count документов.";
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вывод информации из базы данных
echo "</br>";
$sql.=' LIMIT '.$start_pos.', '.$perpage;
$result = mysql_query($sql) or die('Error!');
//echo $sql;
echo "<table border=1>";
echo "<tr>";
for ($i=0; $i < count($columns_en); $i++)
{
echo "<td>$columns_rus[$i]</td>";
}
echo "</tr>";
echo "<tr>";
while ($row = mysql_fetch_array($result))
{
for ($i=0; $i < count($columns_en); $i++)
{
echo "<td>".$row[$columns_en[$i]]." </td>";
}
echo "</tr>";
}
echo "</table>";
// Вызов функции, для вывода ссылок на экран
link_bar($page, $count, $pages_count, 10);
} }
elseif ($search == '')
{
echo " <br> Вы ничего не ввели в окно поиска. Пожалуйста, повторите поиск. </br>";
}
?>
_____________