Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
-4 / 1 / 2
Регистрация: 27.02.2017
Сообщений: 205
1

Поиск на сайте - PHP, MYSQL

06.06.2017, 19:21. Показов 1124. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
НОВИЧОК!!
Никак не могу понять где ошибка, при вбивании в поле поиска слова, перекидывает на страницу search.php и пишет "Object not found!" Прошу помочь и заранее благодарю

1.php
HTML5
1
2
3
4
<form name="search" method="post" action="search.php" class="search">
    <input type="search" name="query" placeholder="Поиск" class="input">
    <button type="submit" class="op">Найти</button> 
</form>

search.php
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
54
55
56
57
58
59
60
<?php 
define('DB_HOST', 'localhost');
define('DB_USER', 'wow');
define('DB_PASS', '');
define('DB_NAME', 'wow');
 
if (!mysql_connect(DB_HOST, DB_USER, DB_PASS)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DB_NAME)) {
    exit('Cannot select database');
}
 
mysql_query('SET NAMES utf8');
 
function search ($query) 
{ 
    $query = trim($query); 
    $query = mysql_real_escape_string($query);
    $query = htmlspecialchars($query);
 
    if (!empty($query)) 
    { 
        if (strlen($query) < 3) {
            $text = '<p>Слишком короткий поисковый запрос.</p>';
        } else if (strlen($query) > 128) {
            $text = '<p>Слишком длинный поисковый запрос.</p>';
        } else { 
            $q = "SELECT `title`, `information`
                  FROM wow WHERE `text` LIKE '%$query%'
                  OR `title` LIKE '%$query%' OR `meta_k` LIKE '%$query%'
                  OR `meta_d` LIKE '%$query%'";
 
            $result = mysql_query($q);
 
            if (mysql_affected_rows() > 0) { 
                $row = mysql_fetch_assoc($result); 
                $num = mysql_num_rows($result);
 
                $text = '<p>По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</p>';
        
                } while ($row = mysql_fetch_assoc($result)); 
            } else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }
 
    return $text; 
} 
?>
 
<?php 
if (!empty($_POST['query'])) { 
    $search_result = search ($_POST['query']); 
    echo $search_result; 
}
?>
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2017, 19:21
Ответы с готовыми решениями:

Поиск на сайте - PHP, MYSQL
Помогите, пожалуйста!! Переменная $q - работает, а $q1 - нет. Как это исправить, чтобы $q1 тоже...

PHP.MYSQL. Регистрация на сайте. Защита
Как вы знаете есть такой фокус: &quot;Когда в лейбел html формы вводится mysql команда, то можно убить...

Поиск на сайте PHP
Как реализовать простой поиск по названию статьи с выводом под самим полем поиска ссылки на...

Поиск на сайте, php код
Всем привет, помогите пожалуйста со скриптом для PHP. Ниже описал пример, того, что мне надо. ...

6
2170 / 1653 / 840
Регистрация: 10.01.2015
Сообщений: 5,192
06.06.2017, 21:42 2
Шалун, либо не запущен сервер, либо путь к search.php не верный.
1
-4 / 1 / 2
Регистрация: 27.02.2017
Сообщений: 205
07.06.2017, 00:19  [ТС] 3
Пифагор,
Спасибо, вы были правы! К сожалению, возникла другая ошибка:
что я бы не вводила в поиск, пишет: "По вашему запросу ничего не найдено." Хотя такие данные (слово или же текст) в бд есть
0
2170 / 1653 / 840
Регистрация: 10.01.2015
Сообщений: 5,192
07.06.2017, 03:18 4
Лучший ответ Сообщение было отмечено Шалун как решение

Решение

Шалун, вероятнее всего, это происходит из-за того, что Вы ищите данные в столбцах, которые не включены в выборку.
Т. е., в выборку включены `title`, `information`, а поиск производится по `text`, `title`, `meta_k`, `meta_d`.
Так же замените строку 34 на
PHP
1
$result = mysql_query($q) or die(mysql_error());
Если в запросе есть ошибки, то они покажутся.
1
-4 / 1 / 2
Регистрация: 27.02.2017
Сообщений: 205
07.06.2017, 22:24  [ТС] 5
Огромное спасибо вам! Если бы не вы, я бы никогда не сделала это

Добавлено через 16 минут
Пифагор,в общем, у меня вывело сколько результатов найдено, и я попыталась эти результаты вывести, но не вышло. После 42 строчки внесла эти изменения, но выводит только слово "Запись" и все:

PHP
1
2
3
4
5
6
7
8
9
while ($row = mysql_fetch_assoc($result)); 
                
                {
echo '<p>Запись '.$row['title'].'</p>';
}
            } 
else {
                $text = '<p>По вашему запросу ничего не найдено.</p>';
            }
Вы не знаете с чем это связано?
0
2170 / 1653 / 840
Регистрация: 10.01.2015
Сообщений: 5,192
08.06.2017, 01:40 6
PHP
1
while ($row = mysql_fetch_assoc($result)); //уберите ; в конце
А к чему относится else?
1
-4 / 1 / 2
Регистрация: 27.02.2017
Сообщений: 205
09.06.2017, 18:14  [ТС] 7
Пифагор, огромное вам спасибо!!! Немного еще подкорректировала и вышло как надо. Еще раз благодарю
0
09.06.2017, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2017, 18:14
Помогаю со студенческими работами здесь

Поиск на сайте и Masonry - PHP, JAVASCRIPT
Помогите, пожалуйста! Не могу разобраться почему при поиске на сайте Masonry не работает; хотя...

Поиск на сайте и Masonry - PHP, JAVASCRIPT
После того как я добавила вот этот код, кнопка &quot;поиск&quot; перестала переадресовывать на страницу...

Поиск файла средствами php на сайте
Добрый день, хочу написать свою CMS и потихоньку собираю разные идеи, вот одна из них, подскажите...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru