Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ajax mysql поиск
 
 автор: Tegis   (11.09.2009 в 22:51)   письмо автору
 
 

Добрый вечер.. Очень нужен поиск, в котором при вводе в строку поиска, сразу проверяется база данных mysql и выводится чуть ниже результат.
Как мне сказали это достигается только благодаря ajax.
Я обыскал весь интернет.. и нету информации... Может хоть тут кто не будь подскажет как это реализовать???
Я очень надеюсь на вашу поддержку и помощь.
Заранее спасибо! С уважением Анатолий.

  Ответить  
 
 автор: heed   (12.09.2009 в 01:27)   письмо автору
 
   для: Tegis   (11.09.2009 в 22:51)
 

научитесь ползоваться библиотекой например
http://dklab.ru/lib/JsHttpRequest/ (там всё объясняется)
когда научитесь "в фоне" отправлять запросы и обрабатывать ответы,
останется только выполнить запрос к MySQL-серверу, и вывести возвращённый результат поиска

  Ответить  
 
 автор: serjinio   (12.09.2009 в 13:26)   письмо автору
 
   для: Tegis   (11.09.2009 в 22:51)
 

Алгоритм такой :
форма ввода : поле <input
при вводе символа в поле (надо фильтровать!!!) происходит событие, которое отлавливается яваскриптом
и передает этот символ Аяксом(пост или гет методом) в пхп скрипт в котором осуществляется выборка (поиск) из бд этого символа
если он есть то результат опять-же аяксом (яваскриптом) выводится на страницу
это краткая схема работы... тут самое сложное это фильтрация вх данных ..примеров(рабочих) работы аякса на форуме море... :)

  Ответить  
 
 автор: Tegis   (13.09.2009 в 21:00)   письмо автору
 
   для: serjinio   (12.09.2009 в 13:26)
 

большое спасибо конечно за ответы... Но а конкретно кто работал с этим? Мне б пример... Попробовал бы разобраться...

  Ответить  
 
 автор: cheops   (13.09.2009 в 21:22)   письмо автору
 
   для: Tegis   (13.09.2009 в 21:00)
 

Конечно, но было бы проще привести какой-то конкретный пример, если бы вы привели структуру вашей базы данных, а ещё лучше небольшой дамп, который можно было развернуть и адаптировать для него один из вариантов поиска.

  Ответить  
 
 автор: Tegis   (13.09.2009 в 22:32)   письмо автору
 
   для: cheops   (13.09.2009 в 21:22)
 

Отлично, сейчас опишу ситуацию.
Поиск нужен для админки, так как база данных рассчитывается на большое количество записей. В одном из разделе админки вся эта куча редактируется...
Допустим у меня таблица называется "akkt"
Вот дамп
-- phpMyAdmin SQL Dump
-- version 2.11.9.5
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Сен 13 2009 г., 22:19
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `stazher`
--

-- --------------------------------------------------------

--
-- Структура таблицы `akkt`
--

CREATE TABLE IF NOT EXISTS `akkt` (
  `id` int(10) NOT NULL auto_increment,
  `akk` int(1) NOT NULL,
  `gtr` int(1) NOT NULL,
  `tab` int(1) NOT NULL,
  `meta_d` varchar(255) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `executor` int(10) NOT NULL,
  `text` text NOT NULL,
  `tabulatura` text NOT NULL,
  `linck` varchar(255) NOT NULL,
  `view` int(8) NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `title` (`title`),
  FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

--
-- Дамп данных таблицы `akkt`
--

INSERT INTO `akkt` (`id`, `akk`, `gtr`, `tab`, `meta_d`, `meta_k`, `title`, `executor`, `text`, `tabulatura`, `linck`, `view`) VALUES
(1, 1, 1, 0, 'А-Студио - Джулия | Джулия - А-Студио | Stazher', 'А-Студио - Джулия | Джулия - А-Студио | Stazher', 'Джулия', 1, '    B7\r\nНас разделяет океан.\r\n', '', '', 187),
(2, 1, 0, 0, 'А-Студио - Нелюбимая | Нелюбимая - А-Студио | Stazher', 'А-Студио - Нелюбимая | Нелюбимая - А-Студио | Stazher', 'Нелюбимая', 1, ' Облака горьких слез между строк', '', '', 8);


Так вот к примеру в админке раздел "Редактировать"
Тут то и нужен вот этот поиск.
Допустим по центру сайта при нажатии "редактировать" загружается строка для поиска... Ну так вот главная цель... При в воде в строку например "Джул" чуть ниже строки выводится из бд "Джулия - А-Студио" И при нажатии на эту надпись переходит на параметры этого "Джулия - А-Студио" текст, название и т.д.


Сори за то что возможно так тупо объяснил... По другому не как(

  Ответить  
 
 автор: serjinio   (14.09.2009 в 00:19)   письмо автору
 
   для: Tegis   (13.09.2009 в 22:32)
 

Посмотрите библиотекуhttp://dklab.ru/lib/JsHttpRequest/
можите потренироваться http://forum.oszone.net/post-1151725.html

  Ответить  
 
 автор: Tegis   (14.09.2009 в 18:20)   письмо автору
 
   для: serjinio   (14.09.2009 в 00:19)
 

Большое спасибо за представленный пример. Попробую..

  Ответить  
 
 автор: Tegis   (14.09.2009 в 18:23)   письмо автору
 
   для: cheops   (13.09.2009 в 21:22)
 

Предложение всё ещё в силе? Я думаю всё же не мешало бы это сделать грамотна... Так что я от помощи конкретно к моему примеру не откажусь...

  Ответить  
 
 автор: cheops   (15.09.2009 в 12:34)   письмо автору
20.9 Кб
 
   для: Tegis   (14.09.2009 в 18:23)
 

Во вложении AJAX-поиск по вашей таблице по полям title и text. Используется библиотека jQuery. Так как таблица (и я так подозреваю вывод) у вас в кодировке cp1251, а AJAX-передача идет в UTF-8, для работы скрипта потребуется также подключенное расширение iconv.

  Ответить  
 
 автор: Tegis   (15.09.2009 в 20:43)   письмо автору
 
   для: cheops   (15.09.2009 в 12:34)
 

Большое спасибо. Да, вот только заместо русского текста абраказябра..=(
" для работы скрипта потребуется также подключенное расширение iconv." Каким образом это можно реализовать?

  Ответить  
 
 автор: cheops   (15.09.2009 в 20:45)   письмо автору
 
   для: Tegis   (15.09.2009 в 20:43)
 

Посмотрите включен ли расширение в отчете функции phpinfo().
>Большое спасибо. Да, вот только заместо русского текста абраказябра..=(
Нужно разбираться чем это вызвано - в крайнем случае можно отказаться от кодировки cp1251 и перейти на utf8, которая гарантирует стабильность работы AJAX-поиска.

  Ответить  
 
 автор: Tegis   (15.09.2009 в 20:49)   письмо автору
 
   для: cheops   (15.09.2009 в 20:45)
 

"Нужно разбираться чем это вызвано - в крайнем случае можно отказаться от кодировки cp1251 и перейти на utf8, которая гарантирует стабильность работы AJAX-поиска."

Да я бы с радостью вот только как граматно перевести вutf8?

  Ответить  
 
 автор: cheops   (15.09.2009 в 20:55)   письмо автору
21.1 Кб
 
   для: Tegis   (15.09.2009 в 20:49)
 

Для этого необходимо выполнить запрос SET NAMES utf8, вместо SET NAMES cp1251, а все файлы преобразовать в кодировку utf8. Во вложении обновленый вариант.

  Ответить  
 
 автор: Tegis   (15.09.2009 в 21:06)   письмо автору
 
   для: cheops   (15.09.2009 в 20:55)
 

Спасибо. Сейчас попробую

  Ответить  
 
 автор: Tegis   (15.09.2009 в 22:16)   письмо автору
151.5 Кб
 
   для: cheops   (15.09.2009 в 20:55)
 

Вроде как перевёл.. В приложении скрин. Но всё тоже абраказябра(

  Ответить  
 
 автор: cheops   (15.09.2009 в 22:21)   письмо автору
 
   для: Tegis   (15.09.2009 в 22:16)
 

Попробуйте мой вариант двумя постами выше, я тоже перевел проект на utf-8 и оттестировал его - у меня он работает, в том числе и в Mozilla FireFox.

  Ответить  
 
 автор: cheops   (15.09.2009 в 22:24)   письмо автору
 
   для: Tegis   (15.09.2009 в 22:16)
 

Базу данных как раз переводить не нужно, скрипт будет корректно работать с данными в cp1251, именно для этого используется SET NAMES utf-8. Возьмите старую таблицу (в cp1251) и второй архив из этой темы.

  Ответить  
 
 автор: Tegis   (15.09.2009 в 22:39)   письмо автору
 
   для: cheops   (15.09.2009 в 22:24)
 

Вернул всё как было не помогло((( все тоже что и на скрине..

  Ответить  
 
 автор: cheops   (15.09.2009 в 22:48)   письмо автору
 
   для: Tegis   (15.09.2009 в 22:39)
 

Скрипт берете по этой ссылке http://www.softtime.ru/forum/files/67930-20090915205515.rar?

  Ответить  
 
 автор: Tegis   (15.09.2009 в 23:00)   письмо автору
 
   для: cheops   (15.09.2009 в 22:48)
 

да

  Ответить  
 
 автор: cheops   (15.09.2009 в 23:24)   письмо автору
 
   для: Tegis   (15.09.2009 в 23:00)
 

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

  Ответить  
 
 автор: Tegis   (15.09.2009 в 23:37)   письмо автору
22.8 Кб
 
   для: cheops   (15.09.2009 в 23:24)
 

вот

  Ответить  
 
 автор: cheops   (16.09.2009 в 00:05)   письмо автору
 
   для: Tegis   (15.09.2009 в 23:37)
 

Хм... развернул - все нормально. Если не сложно посмотрите какая кодировка на странице - может она фиксирован и не стоит "автоопределение".

  Ответить  
 
 автор: Tegis   (16.09.2009 в 00:18)   письмо автору
 
   для: cheops   (16.09.2009 в 00:05)
 

> Если не сложно посмотрите какая кодировка на странице - может она фиксирован и не стоит "автоопределение".

В браузере?

  Ответить  
 
 автор: cheops   (16.09.2009 в 00:23)   письмо автору
 
   для: Tegis   (16.09.2009 в 00:18)
 

Да.

  Ответить  
 
 автор: Tegis   (16.09.2009 в 00:21)   письмо автору
 
   для: cheops   (16.09.2009 в 00:05)
 

Кстати хотел узнать.. Какую литературы вы можете посоветовать по ajax для полных нулей)) Или нужно с начало начальные знания JS?

  Ответить  
 
 автор: cheops   (16.09.2009 в 00:26)   письмо автору
 
   для: Tegis   (16.09.2009 в 00:21)
 

Если хотите свою библиотеку строить, то очень хорошая книга AJAX и PHP. Разработка динамических веб-приложений.
Если хотите просто использовать AJAX в рамках готовой JavaScript-библиотеки, то очень хорошая книга по библиотеке jQuery jQuery. Подробное руководство по продвинутому JavaScript.

  Ответить  
 
 автор: Tegis   (16.09.2009 в 00:31)   письмо автору
 
   для: cheops   (16.09.2009 в 00:26)
 

ладно.. большое спасибо за помощь.. К сожалению так и осталось акбраказябра( Буду разбираться.. искать другие варианты..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования