Php поиск для сайта php: Как сделать поиск по сайту с помощью PHP и MySQL?
Как сделать умный поиск по сайту? | PHPClub
MasterYan
Новичок
- #1
Как сделать умный поиск по сайту?
Как сделать так что б при вводе ‘вися пупкин’ поисковик выдавал:
Быть может, вы искали: «вася пупкин»
http://yandex.ru/yandsearch?text=вися+пупкин&clid=50368&lr=187
Вообще как реализированна коррекция слов в поисковиках?
Может есть какие-то статьи по том как улучшить поиск по сайту??
PS: искать с помощу Яндекса не предлагать
tf
крылья рулят
- #2
поиск на сайте введи в поисковый запрос слево вверху и почитай пару тем
Adelf
Administrator
- #3
Sphinx — это то самое волшебное средство, что недавно меня просто очаровало и надолго.
korchasa
LIMB infected
- #4
Статья называется немного не так
Adelf
Administrator
- #5
Ну я это не название статьи приводил, а название фичи
Активист
Активист
- #6
У меня именно так и реализовано — sphinx и [m]pspell[/m]
Вот код, которой мной используется, писался очень быстро, но алгоритмы можно посмотреть.
http://phpclub.ru/paste/index.php?show=2331
Результат работы этого кода примерно такой
Код:
Вы искали: туплый пол Возможно вы имели ввиду: теплый пол ? (возможно в вашей поисковой фразе допущена орфографическая ошибка) Результаты для: теплый пол Теплые полы Ekkotek Термостат уже входит в комплект [url]http://www.***.ru/ru/catalog/group-152/showGroup.html[/url] | Надено в каталоге Теплые полы Ekkotec ... отопления имеют несколько основных функции применения - теплый пол, обогрев помещений, антиобледенение, обогрев трубопроводов. Основная - теплый пол. Теплый пол - экономичный источник тепла, основанный на преобразовании ... Комплектация Расчет обогреваемой площади и подбор комплекта Прайс лист на теплые полы Ekkotec [url]http://www.***.ru/ru/pages/komplekt.html[/url] | Надено в страницах Теплые полы Thermo ... отопления любых типов жилых и нежилых помещений – Теплый пол Thermoтм производства Thermo Industri ... окружающей среде. При этом стоимость установки Теплого пола Thermoтм на 40 – 50 % ... на терморегуляторы Thermoregтм – 2 года. Универсальность Теплый пол Thermoтм может использоваться в любом ... [url]http://www.***.ru/ru/pages/Teplye_poly_Thermo.html[/url] | Надено в страницах
MasterYan
Новичок
- #7
Sphinx будет пахать на обычном хостинге с (php + MYSQL) ?
есть ли уже готовые решения для с русско-английским словарем?
Adelf
Administrator
- #8
>> Sphinx будет пахать на обычном хостинге с (php + MYSQL) ?
На обычном shared-хостинге за копейки — нет. Его надо ставить отдельно демоном(или сервисом в Win). Это дают на VDS-хостингах, ну и всякие Colocation/Dedicated конечно.
MasterYan
Новичок
- #9
а что б на обычном работало, есть какие-то варианты?
Alexandre
PHPПенсионер
- #10
а что б на обычном работало, есть какие-то варианты?
Нажмите для раскрытия.
..
никаких.
есть еще UDF , которые выдают к-энт похожести и пр. фичи для сравнения, но это тоже уже не обычный хостинг…
PHP MySQL разработка — HTMLLab
PHP MySQL разработка — набор заданий для PHP-разработчика по взаимодействию языка и сервера БД MySQL: PHP магазин, поиск по базе, заполнение таблиц
Создайте «двухстраничный» PHP магазин (index.php и basket.php). На главной странице магазина index.php должны располагаться товары в количестве не менее 5 наименований (не требуется, чтобы товары хранились в БД, это тема следующих заданий). с названием, стоимостью и кнопкой «Добавить». Правом углу главной страницы должна выводиться корзина пользователя, а при нажатии на «Добавить», товар должен появляться в пунктах корзины.
На странице basket.php сделать возможным изменением пунктов корзины и кнопку/ссылку «Заказать». При нажатии на неё, показывать поля доставки товара, а после, результат заказа (уникальный идентификатор и перечень товаров с указанием количества) должен оправляться в базу (в одну таблицу БД)
- предусмотрите постраничное разбиение для количества товаров более 9
- Для хранения корзины используйте сессионную переменную
- Количество товаров отдельного наименования должно меняться при добавлении в корзину
Создайте две, связанные в MySQL как «один ко многим» таблицы: категории (category) и товары (catalog). Создайте php-скрипт, который будет выводить товары из каталога с указанием категории, добавлять новые категории, добавлять новые товары с указанием категории
- при добавлении товара должен быть доступен элемент <select> с перечнем категорий (они выбираются из таблицы category)
Создайте одну таблицу catalog. Товары в каталоге должны содержать поля: название, описание, категория, цена. Напишите скрипт, который будет принимать данные из HTML-формы и выводить отфильтрованные данные из таблицы. Форма должна содержать <select> с перечнем категорий и три текстовых поля фильтрации (название, описание, цена).
Нужно получить HTML форму приблизительно такого содержания:
<h3>Поиск товара</h3> <form action=""> <input type="text" name="title"/> <input type="text" name="description"/> <select name="category"> <option value="">Lorem.</option> <option value="">Nesciunt!</option> <option value="">Cumque.</option> <option value="">Reprehenderit.</option> </select> <input type="text" name="price"/> </form>
Создайте таблицу catalog. Напишите PHP код, который при выводе товаров из базы реализует постраничное разбиение материала (http://htmllab.ru/php-pagination/).
Создайте таблицу user с полями id, user, pass, status. Заполните её несколькими строками данных. Реализуйте форму входа на сайт: при совпадении имен пользователя и хэша вводимого пароля с значением хэша в таблице, в сессионную переменную отмечать о корректной аутентификации и создавать ссылку «Выход» на странице. При некорректном вводе отмечать, что данные введены некорректно и выводить фразу «Некорректный ввод». Подсказка: логин: John, пароль: qwerty.
Дана MySQL-таблица. Написать php-скрипт, который будет заполнять таблицу данными.
DROP TABLE IF EXISTS `wp_posts`; CREATE TABLE IF NOT EXISTS `wp_posts` ( `ID` bigint(20) unsigned NOT NULL, `post_author` bigint(20) unsigned NOT NULL DEFAULT '0', `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_content` longtext NOT NULL, `post_title` text NOT NULL, `post_excerpt` text NOT NULL, `post_status` varchar(20) NOT NULL DEFAULT 'publish', `comment_status` varchar(20) NOT NULL DEFAULT 'open', `ping_status` varchar(20) NOT NULL DEFAULT 'open', `post_password` varchar(20) NOT NULL DEFAULT '', `post_name` varchar(200) NOT NULL DEFAULT '', `to_ping` text NOT NULL, `pinged` text NOT NULL, `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `post_content_filtered` longtext NOT NULL, `post_parent` bigint(20) unsigned NOT NULL DEFAULT '0', `guid` varchar(255) NOT NULL DEFAULT '', `menu_order` int(11) NOT NULL DEFAULT '0', `post_type` varchar(20) NOT NULL DEFAULT 'post', `post_mime_type` varchar(100) NOT NULL DEFAULT '', `comment_count` bigint(20) NOT NULL DEFAULT '0' ) ENGINE=InnoDB AUTO_INCREMENT=2068 DEFAULT CHARSET=utf8;
Примечания:
- Эта таблица из БД WordPress; в процессе выполнения этого упражнения познакомитесь со структурой
- Рассмотреть варианты вставки данных через форму (по одной записи, при этом HTML-форму сделать минимальной, чтобы при проверке и работе не вводить 100-500 полей), а также пакетно, через LOAD DATA
- Не нужно уточнять у меня, что значит то или иное поле — пользуйтесь инетом
Создайте простую таблицу для хранения страниц сайта. Реализуйте добавление, просмотр, удаление страниц сайта.
Примечания:
- Основной материал страниц должен добавляться через произвольный визивиг-редактор
- Адреса страниц должны быть реализованы в виде «чистых ссылок»
Это задание для отдыха и отвлечения от трудностей квеста. Нужно выполнить минимум одно задание из перечня
- Создайте на PHP игру пользователя с компьютером — «Крестики-нолики» (пример игры на JavaScript). Это задание для разминки и не требует работы с БД. Используйте сессию.
- Создайте игру «Угадай слово». Правила: есть база с таблицей слов и описаний этих слов. При старте игры, из базы выбирается произвольное слово и описание. Пользователю показывается описание и поля ввода для ввода букв слова. Все правильно введенные буквы учитываются, а неправильно введённые не показываются при проверке, чтобы пользователь продолжал ввод.
Чем меньше ходов у пользователя — тем лучше
- Создайте игру «Угадай слово». Правила: есть база с таблицей слов и описаний этих слов. При старте игры, из базы выбирается произвольное слово и описание. Пользователю показывается описание и поля ввода для ввода букв слова. Все правильно введенные буквы учитываются, а неправильно введённые не показываются при проверке, чтобы пользователь продолжал ввод.
- Создать произвольную (от крестиков-ноликов, до монополии с шахматами) игру в двухпользовательском режиме. Для совместной игры нужно генерировать уникальный код и присылать партнеру по игре
- Создать игру морской бой. Режим работы с компьютером или парный
- Создайте игру, в которой нужно периодически заходит на страницу и «прокачивать» уровень игрового персонажа (героя или здания, или тому подобное). После каждого повышения уровня, должно требоваться больше времени на последующее улучшение. Используйте header() для обновления страницы после истечения требуемого времени. По-хорошему, игра должна использовать базу, но можно и на сессиях. Присмотритесь к Travian и Ogame
- Создайте игру по аналогии с Монополией. Будьте аккуратны, это затягивает 🙂 Предусмотрите многопользовательский режим.
Создать две таблицы users и messages для хранения переписки между пользователями. Реализовать возможность закрытой переписки между отдельными пользователями по аналогии с vk.com/fb.com (но без JS и AJAX — с ними можно экспериментировать после выполнения задания или прохождения квеста). Предусмотреть аутентификацию пользователей. При проверке задания — пришлите мне логин и пароль, для переписки с вами.
Есть таблица words, в которой хранятся слова и некоторые URL (создать самостоятельно). Создать простую форму из <textarea> и кнопки отправки формы. Написать скрипт, который будет заменять все слова полученные из многострочного текстового поля на те же слова, но с гиперссылкой на URL из базы.
Как отправлять материалы в вашу базу данных MySQL с помощью PHP
- Руководство пользователя Jotform
- Дополнительные функции
- Как отправлять данные в вашу базу данных MySQL с помощью PHP
Последнее обновление:
Идентификатор сообщения
В этом руководстве показано, как отправлять и сохранять данные формы в базу данных MySQL после отправки с помощью PHP. Требуется базовое понимание MySQL и PHP.
Начнем:
- Создайте свою базу данных и таблицу.
Колонки в вашей таблице будут зависеть от структуры вашей формы. Ознакомьтесь с этим руководством, чтобы увидеть имена полей вашей формы или почтовые ключи, если вы не уверены, какие столбцы добавить в таблицу базы данных. - Для этого руководства обязательно добавьте в таблицу столбец «submission_id».
В этом образце контактной формы таблица в phpMyAdmin выглядит следующим образом:
Примечание: Процесс создания или редактирования вашей базы данных будет зависеть от настроек вашего сервера или веб-хостинга. Обратитесь за помощью в службу поддержки вашего провайдера.
- Теперь загрузите и распакуйте этот ZIP-файл, содержащий код.
- Откройте файл PHP в текстовом редакторе.
- Найдите в коде Database Config и замените значения информацией из вашей базы данных.
- Затем найдите Data to Save и добавьте данные POST для сохранения в базу данных.
Используйте функцию real_escape_string()
для предотвращения возможных уязвимостей SQL-инъекций. Чтобы проверить данные POST вашей формы, см. раздел Как просматривать отправки как данные POST.
- Найдите запросы для выполнения и отредактируйте запрос UPDATE .
Сопоставьте значения сообщений со столбцами таблицы. Для получения дополнительной информации см. Заявление MySQL UPDATE.
- Сделайте то же самое с запросом INSERT .
Для получения дополнительной информации см. Оператор MySQL INSERT.
- Сохраните файл PHP и загрузите его на свой сервер — обратите внимание на URL-адрес файла.
- Теперь настройте форму для отправки данных по URL-адресу вашего PHP-файла.
Дополнительные сведения см. в разделе Отправка данных отправки с помощью запроса POST. - Отправьте тестовую запись в форму и подтвердите результаты.
Да
Нет
Нам очень жаль это слышать. Какая проблема у вас была с гидом?
Категория обратной связи Не ответил на мой вопросСлишком сложныйУстаревший Проблема с переводомПроблема с образцом/кодомДругое
Как мы можем улучшить это руководство?
PHP Программирование с Visual Studio Code
Редактировать
Visual Studio Code — отличный редактор для разработки PHP. Вы получаете такие функции, как подсветка синтаксиса и сопоставление скобок, IntelliSense (завершение кода) и фрагменты из коробки, и вы можете добавлять дополнительные функции с помощью расширений VS Code, созданных сообществом.
Анализ
VS Code использует официальный анализатор PHP ( php -l
) для диагностики языка PHP. Это позволяет VS Code оставаться в курсе улучшений PHP linter.
Совет: используете XAMPP? Установите полную версию PHP, чтобы получить библиотеки разработки.
Существует три параметра для управления линтером PHP:
-
php.validate.enable
: управляет включением линтера PHP вообще. Включено по умолчанию. -
php.validate.executablePath
: указывает на исполняемый файл PHP на диске. Установите это, если исполняемый файл PHP не находится в системном пути. -
php.validate.run
: определяет, запускается ли проверка при сохранении (значение:"onSave"
) или при типе (значение:"onType"
).По умолчанию при сохранении.
Чтобы изменить настройки PHP, откройте Настройки пользователя или рабочей области (⌘, (Windows, Linux Ctrl+,)) и введите «php», чтобы отфильтровать список доступных настроек.
Чтобы установить путь к исполняемому файлу PHP, выберите ссылку Изменить в settings.json в разделе PHP > Проверить: путь к исполняемому файлу , который откроет ваш пользовательский файл settings.json
. Добавьте параметр php.validate.executablePath
с путем к вашей установке PHP:
Windows
{ "php.validate.executablePath": "c:/php/php.exe" }
Linux и macOS
{ "php.validate.executablePath": "/usr/bin/php" }
Фрагменты кода
Visual Studio Code включает набор общих фрагментов кода для PHP. Чтобы получить к ним доступ, нажмите ⌃Пробел (Windows, Linux Ctrl+Пробел), чтобы получить контекстно-зависимый список.
Расширения PHP
В VS Code Marketplace доступно множество языковых расширений PHP, и в настоящее время создаются новые. Вы можете искать расширения PHP в VS Code в представлении Extensions (⇧⌘X (Windows, Linux Ctrl+Shift+X)), а затем отфильтровать раскрывающийся список расширений, введя «php».
Отключить встроенную поддержку PHP
Чтобы отключить встроенные интеллектуальные дополнения PHP в пользу предложений от установленного расширения PHP, снимите флажок PHP > Suggest: Basic , который устанавливает для php.suggest.basic
значение false в файле settings.json
.
Отладка
Отладка PHP с помощью XDebug поддерживается через расширение PHP Debug. Следуйте инструкциям расширения для настройки XDebug для работы с VS Code.