Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 05.07.2019
Сообщений: 60

Как сделать запрос наличия в форме поискового запроса запроса на поиск одноразовым?

13.07.2019, 22:57. Показов 2158. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня проблема. Я PHP изучаю всего несколько месяцев и делаю по совместительству себе свой сайт. Делаю новостную ленту для него с поиском новостей. Поиск уже выдаёт результат запроса, и даже в обратном порядке и с использованием пагинации, НО ПРОБЛЕМА - он выдаёт результат поиска только на первой странице, а на второй и последующих страницах выдаёт сообщение о том, что я не ввёл запрос для поиска - после завершения первой итерации запроса снова запускается условие (if) наличия поискового запроса в форме для него. Как сделать так, чтобы этого не было, а результаты поиска выводились на все страницы пагинатора?

Вот код файла с обработчиком запроса и пагинатором:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
    
 
    $db_server = '127.0.0.1';
    $db_user = 'SERGEY';
    $db_password = 'BArn05toNga';
    $db_name = 'solar_system';
    
if (isset($_GET['page'])){
    $page = $_GET['page'];
}else $page = 1;
 
if (isset($_POST['form1'])){
$name = $_POST['form1'];
}
 else $name = "Вы не ввели данные для поиска";
 
 
      $countonPages = 10;// Количество записей на странице
 
    
    // Подключаемся к серверу БД
    $link = mysqli_connect("$db_server", "$db_user", "$db_password", "$db_name");
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться к MySQL", mysqli_connect_error());
    exit();
}
$shift = $countonPages*($page-1);
 
$query = "SELECT ID, Nazvanie_stati, Data_publikacii_stati, Text_stati, Text_ssilki_v_menu FROM novosti_o_kosmose WHERE Nazvanie_stati LIKE '%$name%' ORDER by ID DESC LIMIT $shift, $countonPages";
 
if ($result = mysqli_query($link, $query)) {
    /* извлечение ассоциативного массива */
    while ($row = mysqli_fetch_assoc($result)) {
       printf ("<BR>#%s \n Опубликовано %s \n <BR><BR> %s \n<BR><BR> %s \n<BR><BR>  %s \n<BR><BR><BR><HR color = 'black' border = '1'>", $row["ID"], $row["Data_publikacii_stati"], $row["Nazvanie_stati"], $row["Text_stati"], $row["Text_ssilki_v_menu"]);
    }
    mysqli_free_result($result);
}
 
/*Пагинатор*/
$query = "SELECT COUNT(*) AS Nazvanie_stati FROM novosti_o_kosmose";
$result = mysqli_query($link, $query) or die(mysqli_connect_error($link));
$count = mysqli_fetch_assoc($result)['Nazvanie_stati'];
$pagesCount = ceil($count/($countonPages));
 
for ($i = 1; $i <= $pagesCount; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
    }
 
/* закрытие соединения */
mysqli_close($link);
 
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.07.2019, 22:57
Ответы с готовыми решениями:

Поиск по тексту с коллекцией в качестве поискового запроса
Добрый день! Передо мной стоит такая задача. Нужно провести поиск по тексту, используя в кач-ве поискового запроса данные,...

Название поддомена как целевого поискового запроса
Недавно заметил что первую позицию в гугле по интересующей меня тематике занимает сайт, у которого модели телефонов в адресе браузера...

Как открыть в браузере страницу с результатами заданного поискового запроса?
Здравствуйте. Для того чтобы открыть хром а в нем google через консоль, нужно написать start Chrome.exe google.com. Интересует вопрос,...

22
2 / 2 / 0
Регистрация: 05.07.2019
Сообщений: 60
18.07.2019, 12:45  [ТС]
Студворк — интернет-сервис помощи студентам
Объясните мне кто-нибудь одну вещь. Почему запрос к БД в файле-источнике, код которого я изложил пятью постами выше, на второй и далее страницах пагинатора ПРОХОДИТ, а в файле-приемнике - НЕ ПРОХОДИТ?
0
Невнимательный
 Аватар для ft4l
3144 / 1368 / 362
Регистрация: 08.02.2013
Сообщений: 8,041
Записей в блоге: 2
18.07.2019, 13:11
Обычно так делается... Сам запрос должен быть SELECT SQL_CALC_FOUND_ROWS ID, Nazvanie_stati, ....
SQL_CALC_FOUND_ROWS tells MySQL to calculate how many rows there would be in the result set, disregarding any LIMIT clause. The number of rows can then be retrieved with SELECT FOUND_ROWS(). See Section 11.14, “Information Functions”.
Далее вместо SELECT COUNT(*) выполняется SELECT FOUND_ROWS()
Или при запросе COUNT(*) нужны были-бы такие-же условия как в первом запросе

Добавлено через 6 минут
SELECT FOUND_ROWS(); выполняется как есть, без FROM, WHERE и т.п.
0
2 / 2 / 0
Регистрация: 05.07.2019
Сообщений: 60
19.07.2019, 00:24  [ТС]
Спасибо Вам большое, дорогие участники форума за помощь, оказанную мне при создании пагинатора - он теперь работает. Как теперь расположить сами его ссылки по центру страницы и как в случае большого их количества вместо цифр показать точки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2019, 00:24

Перенаправление поискового запроса
Скачанная с интернета зараза наустанавливала всякого мусора в системе(Амиго и прочее). Большинство удалось вычистить, но осталась...

Фильтрация поискового запроса
Как сделать чтобы значение $text вводилось в поле самостоятельно пользователем? &lt;? $text = 'Прошивка BIOS – дело трудоёмкое и...

Как сделать гибкий фильтр запроса. Или множественный запрос
В общем проблема такова, хочу чтобы при выборе Боевик и Военный выводились фильмы обоих жанров, а скрипт выводит только Военные фильмы. ...

Получить результаты поискового запроса
Как получить результаты поиска на русском языке из гугла, яндекса и тд ? Дайте пример.

Получить изображение с поискового запроса
Как мне получить картинку, которая была бы первой в поисковом запросе? Т.е. я пишу какое либо слово, а программа получает url картинки по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru