347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
1

Поиск передаваемой строки в базе данных

05.03.2015, 14:42. Показов 566. Ответов 2
Метки нет (Все метки)

Всем привет! Я решил написать свой маленький поисковичек который будет искать информацию в моей БД и выводить список всех совпадений.
Основную часть писал на JS, на этом этапе все готово, но возникла проблема с поиском по базе данный. С PHP я вроде бы знаком, но пока что очень плохо.
Я знаю как организовать запрос к какой то таблице там допусти и получить от туда информацию, аля
PHP
1
$q = mysql_query("SELECT * FROM myTab",$db);
Но как организовать поиск по ВСЕЙ базе данных, во всех ее таблицах и вывести любое совпадение, даже не до конца введенного текста?
Вот JS код может так будет немного понятнее.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var searcher = (function(){
    var inputSearch; // поле ввода информации
    var buttonSearch; // кнопка отправки информации
    var searchHelp; // блок контейнер подсказок
    window.addEventListener("load",function(){
        inputSearch = document.getElementById("sr");
        buttonSearch = document.querySelector(".searchIcon");
        searchHelp = document.querySelector(".searchHelp");
        inputSearch.addEventListener("keydown", searchInfo);
        inputSearch.addEventListener("focus", function(){searchHelp.style.display = "block";});
        inputSearch.addEventListener("blur", function(){searchHelp.style.display = "none";});
    });
    function searchInfo(){
        var text = this.value;
        var req = new XMLHttpRequest();
        req.open("GET","../content/generSearch.php?info="+text,true);
        // передаем текст введенный пользователем на обработку PHP
        req.onreadystatechange = function(){
            searchHelp.innerHTML = req.responseText;
        }
        req.send();
    }
}());
Вот PHP код страницы generSearch.php
PHP
1
2
3
4
5
6
7
$host = 'localhost';
$user = 'root';
$pass = '';
$db = mysql_connect($host,$user,$pass) or die("Проблема с подключением к базе данных");
mysql_select_db("db_nwn",$db) or die("Не найдена указанная база данных.");
echo "<div class='searchResult'>Нет совпадений</div>";
echo "<div class='searchResult'>Тестовый блок</div>";
Как видно тут ничего не происходит пока что, по идеи в тегах див должны выводится все найденные совпадения.

Ну и конечно же поиск должен выполняться при любом совпадении вне зависимости от регистра или законченности ввода
Например в таблице есть 5 записей
ActionInfo
ActionTest
ActionGen
Item
Set

и при вводе пользователем текста action должны вывестись 3 записи ActionInfo ActionTest ActionGen.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2015, 14:42
Ответы с готовыми решениями:

Поиск строки в Базе данных
Доброго времени суток! Столкнулся с проблемой при поиске строки в Базе данных. Есть база данных,...

поиск в базе данных и запись значений строки в одномерный массив
Помогите Поожалуста))) У меня есть база данных access через ADO соединяется с Delphi мне нужно...

Написать код для кнопки поиск, добавление и удаление строки в базе данных
Можете помочь? написать код для кнопки поиск, добавление и удаление строки в базе данных..

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

2
1 / 1 / 2
Регистрация: 02.03.2015
Сообщений: 9
05.03.2015, 23:11 2
Ну чисто теоретически, можно выполнить запросы и обработать информацию которую вернут, начиная с:
SQL
1
SHOW TABLES;
покажет какие есть таблицы в базе.
Брать результат в цикл и для каждой таблицы использовать:
SQL
1
EXPLAIN tablename;
Дальше формировать запрос для прохода по всем CHAR, VARCHAR, TEXT полям с выборкой
SQL
1
SELECT field_1,field_2,field_3 FROM table_1 WHERE field_1 LIKE "%pattern%" OR field_2 LIKE "%pattern%" field_3 LIKE "%pattern%";
Все полученные результаты загонять в массив и его в json возвращать js.
Но все это какой-то полный изврат. Более простых вариантов тоже как-то не вижу. Можно попробовать использовать Sphinx, но с ним не работал, так что это тоже только в теории.

Обычно все начинают с "сделать как-то попроще", а потом уже после достаточных мучений решают сделать заново, но по нормальному. Но может придет какой-то дядька который чем-то подобным занимался и подскажет.
0
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
06.03.2015, 09:39  [ТС] 3
Спасибо, посмотрю что получится.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2015, 09:39
Помогаю со студенческими работами здесь

Как осуществить поиск данных по базе данных по связи многие-ко-многим
Репозиторий SqlApplicantRepository namespace theModel.Repository { public class...

Поиск в базе данных (поиск далее)
Добрый вечер! Нужна ваша помощь. Делаю поиск по базе, использую компонент AdoTable. В базе есть...

Реализовать поиск и выбор данных в форме в базе данных Access
Здравствуйте! Подскажите пожалуйста,как реализовать поиск и выбор данных в форме в базе данных...

Кодировка передаваемой в представление строки
Передаю представлению return new HttpStatusCodeResult(HttpStatusCode.InternalServerError,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru