0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 1
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
MySQL Работает поисковик, но не так как нужно. В этом деле начинающий, очень тяжело разобраться. Буду благодарен всем22.12.2018, 20:08. Показов 1178. Ответов 6
Здравствуйте! Такая, проблема: вроде написал поисковик, присоединил базу, ищет по параметрам, но выводит не так как мне нужно. Пример что не так: при поиске 20 например он сделает вывод всех столбиков в принципе ( т.к вывод настроен на вывод всех столбиков ) где есть составляющая 20, например из 8 столбиков во втором столбике "год" есть 2018, вот он выведет все записи 2018, и даже 2017 и т.д, понятное дело. А мен нужно полное совпадение, причем как-то чтобы запрос принимал 2 слова в поиске как разные и мог искать их по разным столбикам и выводил когда оба столбика (их поля) включают в себя например 2018 (в столбике год) и Петров (в столбике автор) т.е вывел все записи из восьми столбиков базы где в годе задан 2018, а в авторе Петров, а не вывел например все работы где есть Петров и в добавок работы других людей 2018 года (сейчас понятное дело так и работает). Нужно 2018+Петров. P.s: возможно код не очень удобен к просмотру, писал много раз, и вот рабочий вариант, но не очень структурированный сейчас есть.
Код:
0
|
|
22.12.2018, 20:08 | |
Ответы с готовыми решениями:
6
Ребзя, спасите, меня отчисляют, нужно капец(! Всем неравнодушным буду очень благодарен. не хочу в армейку( В целом понимаю как работает код, но в коде ориентироваться тяжело, если кто-то напишет комментарии буду благодарен)
|
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
|
|
22.12.2018, 20:35 | 2 |
Можно еще раз и покороче
![]() Как сейчас выводит И как хочется просто на примере Если не трудно
0
|
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 1
|
|
22.12.2018, 21:22 | 3 |
Почему-то не могу зайти на созданный аккаунт
![]() В общем по теме, сейчас выглядит так - https://pp.userapi.com/c849320... fL7PcM.jpg Вот например я введу "2017 Юхн" мне выдает таблицу где присутствует "2018 Юхн" ; "2015 Юхн" и так далее. А мне нужно чтобы четко задал 2018 Юхн и вывело только тогда когда и то и другое в разных столбцах присутствует, а не по отдельности, вот примерно такая поисковая система нужна. Большое спасибо.
0
|
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
|
|
22.12.2018, 22:10 | 4 |
Так, приблизительно понял ![]() Ну, если хотим чтобы по два полю находило, то ставим and в условии, а не or: искать 'первое поле' And 'второе поле' )чтобы находило как вы хотите, нужно настроить правильный шаблон в like LIKE '^вася$' Найдёт совпадение только васи васЯк или швася уже не найдётся Добавлено через 2 минуты Насчёт like in Добавлено через 1 минуту Я не пользуюсь, но люди советуют regexp или просто ставить or Добавлено через 24 секунды Like in возможно вы неправильно применяйте Добавлено через 1 минуту В mysql оно не используется насколько я понял
0
|
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 1
|
|
22.12.2018, 22:18 | 5 |
like in я ошибочно написал, в коде просто like использую. На счёт использования and , с ним у меня тогда ищет чтобы в каждом столбика было 2018 например, если пишу фразу 2018 Юхн, то мне ничего не найдёт, т.к в поле именно этого нет, он сравнивает все поля соответственно и т.к у меня они все через and идут, то во всех должна быть эта фраза (слово). т.е он может вывести по запросу 2018 только тогда когда во всех столбиках в базе забито 2018. И вообще любые другие попытки изменить поиск приводят к этой ошибке - Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in . Если функцию удалить ошибки нет, но поиск не работает, просто ничего не ищет. Я в php пару дней, до этого тоже слабо знал языки по большей части, поэтому не знаю что делать и как это пофиксить. При добавлении любого символа например $query_search = '+god* LIKE "%'.$value.'%" OR +tip* LIKE "%'.$value.'%" OR и т.д, выдаёт ошибку как я выше писал. Также я пробовал поменять мой рабочий поиск (но не то что мне нужно) на который нужен с помощью SELECT * FROM тататат WHERE - но выдаёт всё ту же выше указанную ошибку и я даже не могу знать может правильный вариант у меня хоть раз да получился, но из-за ошибки не могу проверить, На сто процентов код свой же понять не могу, т.к просто понял что для работы что-то нужно оставить, но не уверен конкретно что делает та или иная команда например, такие пробелы есть, поэтому и ищу помощи.
P.s: Если что может этот исправить на мне нужный или же написать под данные к моей базе и её данным (названия столбиков имею ввиду) отблагодарю.
0
|
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
|
|
23.12.2018, 08:07 | 6 |
Смотрите, сами подумайте
LIKE можно строить, как вы сделали %___% или использовать регулярное выражение, как я вам показал с васей, в инете посмотрите примеры шаблонов в регулярках и составьте нужный себе, там не тяжело 2)у вас форма разве правильно составлена? В name='words', если нужен массив, то ставим 'words[]'
0
|
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 1
|
||||||
23.12.2018, 13:36 | 7 | |||||
Возможно, неверно, но когда я пытаюсь изменить на массив, делаю как вы написали, то у меня выдаёт ошибку:
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in F:\web\OSPanel\domains\test\poisk.php:36 Stack trace: #0 F:\web\OSPanel\domains\test\poisk.php(44): search('2018') #1 F:\web\OSPanel\domains\test\index.php(48): include('F:\\web\\OSPanel\\...') #2 {main} thrown in F:\web\OSPanel\domains\test\poisk.php on line 36 Как я понимаю всё упирается в эту часть кода:
0
|
23.12.2018, 13:36 | |
23.12.2018, 13:36 | |
Помогаю со студенческими работами здесь
7
Нужно ускорить код. Буду очень благодарен Ребят, нужно реализовать задачи в maple! Буду очень благодарен! Нужно переделать проекты через указатели.Буду очень благодарен) Опишите эту программу.Очень надо. Я её уже немного описал,мне нужно в мельчайших подробностях.Буду благодарен Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |