Как сделать поиск по бд

Обновлено: 05.07.2024

Поставил месяц назад от гугла поиск на сайт ищет только страницы каталогов, а не определенный страницы где расположен материал..

Нужно сделать нормальный поиск по сайту, чтобы искал тексты с нужным названием. То есть "поиск по тексту на сайте в виде html".

поиск от яндекса поставьте

самое просто наверное поставить adsense , еще и кое какие копейки заработаете.

Если ты хочешь, что бы у тебя было всё хорошо. Положи под подушку шоколад и на утро у тебя будет всё в шоколаде.

какой я древний, у меня лет 15 глимпса стоит, и не парит, и вроде ищет, тог да даже яндекса небыло вроде

Да и пхп в зачатке был

Яндекс только 27 страниц проиндексировали, а в общем 57.

Гугл 45 ил 57 (нужные страницы проиндексировал).

Сайту 15 дней. Но и прошлые сайты, поиск от гугла не хотел нормально работать, он там главное искал каталоги и страницы новостей, а нужные разделы не хочет и всё. Хотя ничего от роботов не закрыто.

Установите следующие права доступа:

Гугл-поиск самое адекватное решение

Просто и быстро

Народ, когда вы читать научитесь?

Не раньше, чем вы научитесь думать.

1. Без php (или других серверных языков) внутренний сервис поиска сделать невозможно даже теоретически. (Наверное можно какое-то подобие сделать на jquery, но это заведомо изврат)

2. Внешние сервисы вы использовать отказываетесь из-за их несовершенности. Хотя проблема скорее всего не в них, а в качестве вашего сайта. Но этот вариант вы тоже рассматривать не хотите.

Вам нужен какой-то третий, волшебный вариант. Задумайтесь о его хотя бы гипотетической возможности. Может, поиск на CSS ? :)

Это как требовать автомобиль, работающий без бензина. И без электродвигателя. Возможен лишь волшебный вариант: автомобиль, работающий по воле божьей :) Но пока его вроде как не изобрели.

pimandr:
Не раньше, чем вы научитесь думать.
1. Без php (или других серверных языков) внутренний сервис поиска сделать невозможно даже теоретически. (Наверное можно какое-то подобие сделать на jquery, но это заведомо изврат)
2. Внешние сервисы вы использовать отказываетесь из-за их несовершенности. Хотя проблема скорее всего не в них, а в качестве вашего сайта. Но этот вариант вы тоже рассматривать не хотите.
Вам нужен какой-то третий, волшебный вариант. Задумайтесь о его хотя бы гипотетической возможности. Может, поиск на CSS ? :)

Это как требовать автомобиль, работающий без бензина. И без электродвигателя. Возможен лишь волшебный вариант: автомобиль, работающий по воле божьей :) Но пока его вроде как не изобрели.

ajax поиск

Недавно реализовал клиенту живой поиск на лендинге и решил поделиться скриптом.

Как работает живой поиск

При вводе в input слова, начинает искать в базе данных похожие выражения.

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

При клике на результат, он попадает в поле поиска, а сам результат скрывается и поле деактивируется.

Скрипт можно сделать под себя при необходимости. Ничего сложного.

В нём подключаем только библиотеку ajax и наш скрипт search.js

Файл search.js

Обработчик запросов search.php

Внимание
Это самый простой пример живого поиска, который не рекомендуется использовать на своих сайтах .
Как минимум нужно сделать кучу проверок, а ещё лучше сделать всё на PDO а не на mysqli, что бы обеспечить безопасность.
Любой профи сможет с лёгкостью взломать сайт или базу и вытащить секретные данные.
Все взломы происходят в основном через поиск.

1. Создание базы данных

В качестве СУБД выберем программу Microsoft Access. Но вы можете использовать и другую базу данных.

Заполните базу данных данными:

Базу данных вы можете и другую создать и данные в ней можете другие добавить т.к. это не принципиально, но мы будем работать с данной таблицей.

2. Создание проекта

В Visual Studio создаём проект:

В следующем окне идем далее:

Update 2021: Visual Studio 2019 требует файл Access старого формата (.mdb – это старый формат баз данных Access 2002-2003):

В следующем окне идем далее:

В следующем окне ничего не меняем и идем далее:

После всех манипуляций наша форма должна быть примерно такой:

Если запустить наш проект, то можно увидать данные из нашей базы данных:

Вот так без единой строчки кода мы вывели данные из нашей таблицы на нужную нам форму. Переходим к 3 пункту.

3. Сохранение данных

Вышеуказанный код обновляет запись в нашей таблице “contacts”. TableAdapter использует команды данных для чтения и записи в базу данных. В “testDataSet” хранятся настройки подключения базы данных.

После добавления кода запустите свое приложение и попробуйте изменить любую запись и сохранить.

4. Изменение заголовков столбцов таблицы

Полезные свойства для изменения столбцов:

  • HeaderText – задает название столбца.
  • Visible – скрывает заголовок или наоборот.
  • Width – ширина столбца.
  • Resizable – можно ли изменять ширину столбца.

5. Защита от случайного удаления

Чтобы пользователь случайно не удалил запись в нашей базе данных нужно сделать так чтобы перед удалением приложение спрашивало об удалении записи.

Для этого перейдем к компоненту DataGridView, откроем список событий и установим обработчик для события UserDeletingRow. Нажмите два раза на пустую строчку возле события и перейдете к коду. Вписываем код:

После этого проверим работоспособность данного кода. Запустим приложение и попробуем удалить запись. Должно быть вот так:

Как только пользователь выделит строчку и нажмет кнопку “Delete” сработает наше событие “dataGridView1_UserDeletingRow” и выскочить окно с вопросом об удалении. Вот скриншот где находятся события выбранного компонента:

6. Добавление данных

Изменяем заголовок формы и добавляем на форму компоненты:

Проверьте работоспособность приложения:

  • System.Windows.Forms.DataGridView dataGridView1;
  • testDataSet testDataSet;
  • System.Windows.Forms.BindingSource contactsBindingSource;
  • testDataSetTableAdapters.contactsTableAdapter contactsTableAdapter;

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

7. Поиск данных

Проверяем работоспособность приложения:

Итоговая форма приложения:

Верхнее меню на нашей форме это компонент “MenuStrip”. На этом наша разработка приложения готова. Дальше попробуйте самостоятельно улучшить свое приложение.

My Visual Database → Russian → Поиск по всей БД одним полем.

Pages 1 2 Next

You must login or register to post a reply

Posts: 1 to 25 of 27

1 Topic by memult 2015-12-13 15:12:06

Topic: Поиск по всей БД одним полем.

Добрый день, Дмитрий. Вопрос в следующем:
Как можно реализовать поиск по всей БД, имея только одно поле Edit и несколько чекбоксов? Т.е с помощью чекбокса отмечается в каких полях искать. Во всех примерах несколько полей Edit и поиск в них осуществляется только в связанных с ним таблицами.

Также вопрос относительно хранения файлов в самой БД. Я так понимаю это не очень хорошо, и могут возникнуть проблемы с быстродействием в дальнейшем. Как сделать, чтобы при загрузке файла они сохранялись только в определенном указанном каталоге? Спасибо.

2 Reply by DriveSoft 2015-12-13 17:20:45

Это можно реализовать с помощью кнопки с действием SQL запрос, сделал для вас проект с примером.

У таких компонентов как DBFile и DBImage есть свойство Type, установите его значение LinkFile
т.о. в базе будет храниться только ссылка на файл.

Employees search by one field ex.zip 6.38 kb, 366 downloads since 2015-12-13

3 Reply by memult 2015-12-13 17:27:20

Я Вас понял. Как раз только заметил это свойство. Но устанавливая значение на LinkFile, пропадает возможность сохранять файл. Если база расположена в локальной сети, то файл с твоего ПК будет уходить в папку с загрузками на сервер, и в принципе, в случае с локальной сетью до этого файла будет можно добраться, открыв каталог или в принципе сам файл. А как быть если база расположена где то на хостинге, и такого доступа,как в локальной сети, к файлу получить нельзя, допустим только по фтп. Можно ли как то решить этот вопрос? За пример спасибо.

4 Reply by DriveSoft 2015-12-13 17:41:11

Вы используете СУБД MySQL ? или SQLite для проекта?

5 Reply by memult 2015-12-13 17:47:09

6 Reply by DriveSoft 2015-12-13 17:53:28

К сожалению для MySQL пока не реализована такая возможно, т.к. для этого действительно нужен какой то сторонний способ загрузки файла на сервер, например как FTP, на сколько я знаю, средствами MySQL это не реализовать.

7 Reply by memult 2015-12-13 18:02:47 (edited by memult 2015-12-13 18:04:07)

Ну а если все таки база лежит в локальной сети, и доступ к файлу можно получить уже свободно, скачать файл все равно не получится? Тут уже ничего не зависит от выбранной СУБД. Просто пункт save file отсутствует, когда свойство стоит LInkFile. Получается, что файл лежит на другой машине, в каталоге files, а ты уже скачиваешь его на свой ПК с локального сервера.

8 Reply by DriveSoft 2015-12-13 18:47:51

В свойство компонента CopyTo вы можете указать сетевой путь к папке (с правом записи), в которой будут сохраняться все файлы
например \\PCNAME\SharedFolder

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

9 Reply by memult 2015-12-13 19:30:41 (edited by memult 2015-12-13 19:52:45)

Спасибо за помощь. Т.е в любом случае когда стоит тип LinkFile сохранить файл не получится и это только для StoreFile?

10 Reply by DriveSoft 2015-12-13 19:54:54

Спасибо за помощь. Т.е в любом случае когда стоит тип LinkFile сохранить файл не получится и это только для StoreFile?

Почему не получится? получится, что именно у вас не получается?

11 Reply by memult 2015-12-13 20:04:05

Под левой иконкой в компоненте DBFile. что подразумевается? Там две иконки, одна открыть(левая) и иконка дискеты(правая). Когда стоит тип Link то при нажатии на дискету варианты либо открыть, либо открыть каталог. Может я не так Вас понял?

12 Reply by DriveSoft 2015-12-13 20:54:33

Левая иконка предназначена для выбора файла, который необходимо сохранить в базу данных.
Правая иконка позволяет открыть файл, сохраненный в базе данных, либо открыть папку, где был сохранен файл.

13 Reply by memult 2015-12-13 21:22:06 (edited by memult 2015-12-13 21:31:32)

14 Reply by DriveSoft 2015-12-13 22:08:11

Так что же именно у вас не получается?
когда установлен тип LinkFile, в базе данных сохраняется только ссылка на файл, поэтому его нельзя сохранить на диск, т.к. он уже есть на диске, поэтому его можно либо просто открыть, либо открыть папку, где он расположен.

15 Reply by memult 2015-12-13 22:13:56

Ну я и говорю, это просто для удобства. Ведь если файл лежит на диске другого локального компьютера, то будет удобнее его просто сохранить уже на диск на своем компьютере) т. е по сути перекачать с одного пк (сервер) на другой (с которого запускается программа) а с типом линк это сделать не удается.

16 Reply by DriveSoft 2015-12-13 22:38:49

При необходимости это можно реализовать скриптом (функция CopyFile), который скопирует с локального компьютера на свой компьютер.

Читайте также: