Перейти к содержимому


Модуль "живой поиск"


  • Закрытая тема Тема закрыта
Сообщений в теме: 57

#1 lola

    Продвинутый пользователь

  • Заблокированные
  • PipPipPip
  • 52 сообщений
Репутация: 0
Начинающий

Отправлено 09 December 2011 - 01:34 PM

Изображение

ЦЕНА: 15$
предлагаю набрать 5 человек и усё. Оставляете мне в личке данные для связи с вами!

#2 mealeks

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 29 сообщений
Репутация: 54
Продвинутый

Отправлено 10 December 2011 - 10:14 PM

Ребята.Не парьтесь.Я себе когда то делал.Проблема только что он под UTF-8. Могу хоть щас выложить. Посмотреть можно тут
  • 0

#3 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 10 December 2011 - 10:16 PM

mealeks, выложи.... буду благодарен, а кодировка думаю не проблема.....

вопрос один - сильно подгружает? если товаров например тысяч 10
  • 0

#4 mealeks

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 29 сообщений
Репутация: 54
Продвинутый

Отправлено 10 December 2011 - 10:58 PM

mealeks, выложи.... буду благодарен, а кодировка думаю не проблема.....

вопрос один - сильно подгружает? если товаров например тысяч 10


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

Прикрепленный файл  search.zip   8.17К   1 Количество загрузок:
  • 0

#5 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 12:48 AM

Да нет , по ссылке около 12 тысяч товаров , проблем с нагрузкой замечено не было.
Сразу хочу сказать , что для использования нужно допилить под себя.Выкладываю как есть , выдрал что помню.
Скрытый текст требуется (3 сообщение(ий), сейчас у вас 506):
search.zip


Спасибо. Поставил - блеск. Все работает (правда не знаю как на счет нагрузки не проверял, но поверю на слово), кодировку в поиске поправил, осталось поправить чтобы еще и искало в кириллице...
  • 0

#6 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 11 December 2011 - 01:49 AM

Раз пошла такая пьянка )
Я хотел дооформить и завтра выложить, потому как у меня сайт тоже в utf8 и там чуть поцивильнее сделано.
Принцип примерно тот же, на базе jquery autocomplete, а старый вариант в 1251 кодировке работал такой, может куски помогут.

<?php
header('Content-type: text/html; charset=windows-1251');
$q = iconv('UTF-8', 'windows-1251', $_GET['q']);
// Datebase varibles
$db_host = 'localhost';
$db_user = 'xxxxx';
$db_pass = 'xxxxxx';
// Esstablish connect to MySQL database
$con = mysql_connect( $db_host, $db_user, $db_pass);
if(!$con)
die('Could not connect: ' . mysql_error() );
mysql_select_db('name_DB', $con);

mysql_query('set character set cp1251');
mysql_query('set character_set_connection=cp1251');

$query = "SELECT name, product_code FROM xxxx_products WHERE (enabled = 1 AND (name LIKE '%$q%' OR product_code LIKE '%$q%')) LIMIT 50";
$result = mysql_query($query);
$output_items = array();
while($row = mysql_fetch_array($result)){
$output_items[] = $row['name'];
}
print(implode("\n", $output_items));
mysql_close($con);
?>


возможно, кому-то не пригодится iconv, у меня тогда кажется база была в utf8 а поля в ней и сайт в 1251, опытным путем заработал именно такой вариант.
  • 0
502 Bad Gateway

#7 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 02:18 AM

Dbus, спасибо, пока проблему не решил...
сначала выдавало несовместимость кодировок, т.к. выводит в ср1251 а таблицы были в латин1, немного помучавшивсь плюнул и перегнал все таблицы в ср1251 - но увы русские буквы так и не ищет....
решил что проблема в strtolower(); - убрал его для проверки - нифига не ищет т.е. как я понимаю не правильный запрос шлет....
не думал что кодировка станет проблемой )) учитывая сколько раз я с ней сталкивался ....

ну ничего продолжаю копать.. если есть идею прошу в студию

$q = iconv('UTF-8', 'windows-1251', $_GET['q']);
получается перекодировка тоже не нужна т.к. все в кириллице....
не понимэ.......
  • 0

#8 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 11 December 2011 - 02:35 AM

я вот щас посмотрел, на старом сайте получается база была в utf8_general_ci а таблицы в ней cp1251_general_ci, поэтому такой вариант и работал.

если у тебя латин1, то может попробовать $q = iconv('windows-1252', 'windows-1251', $_GET['q']);
и set character_set_connection, set character_set может закомментировать...

в свое время тоже бодался, решилось методом тыка.
  • 0
502 Bad Gateway

#9 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 02:37 AM

если у тебя латин1, то может попробовать $q = iconv('windows-1252', 'windows-1251', $_GET['q']);
и set character_set_connection, set character_set может закомментировать...


я уже перегнал в 'windows-1251' - если в латин1 то вообще выдавало Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation 'like'
так оставлять нельзя было... да и вообще я какуюто левую базу юзаю - завтра попробую чистую свою поставить, хотя конечно теоретически будет тоже самое....
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2011 - 05:45 PM

Да нет , по ссылке около 12 тысяч товаров , проблем с нагрузкой замечено не было.
Сразу хочу сказать , что для использования нужно допилить под себя.Выкладываю как есть , выдрал что помню.
*** скрытый текст ***

Спасибо за модуль. Пути поменял на дефолтовые, а вместо ../img/loader.gif прописал /../admin/loader.white.gif (он штатно есть в дефолтовой установке) и все сразу заработало. Осталось поправить кодировку (у меня тоже latin1, а таблицы в 1251), но это врядли сложно.

PS. только префикс имен таблиц я бы автоматом подставлял, это ж не сложно, как я понимаю.
update: да, несложно.
$data = mysql_query("SELECT * from ".DB_PRFX."products where и так далее....
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 05:51 PM

Осталось поправить кодировку (у меня тоже latin1, а таблицы в 1251), но это врядли сложно.
PS. только префикс имен таблиц я бы автоматом подставлял, это ж не сложно, как я понимаю.


да несложно, но и сменить на свой не сложно )) если разберешься с кодировкой плиз отпишись.. я тоже поначалу думал что несложно
  • 0

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2011 - 05:54 PM

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

Я язык PHP месяца полтора назад впервые увидел :), так что я попробую, но раз у более знающих не получилось, то шансы невелики :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2011 - 09:40 PM

[b]
$q = iconv('UTF-8', 'windows-1251', $_GET['q']);
получается перекодировка тоже не нужна т.к. все в кириллице....
не понимэ.......

В моем случае я посмотрел на:
mysql> SHOW VARIABLES LIKE 'character_set_system';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| character_set_system | utf8 |
+----------------------+-------+
1 row in set (0.00 sec)

Собственно, я и так знал, что оно utf8 (Centos).

Чтобы select выдавал нормальную выборку при запросе поиска с русскими буквами пришлось добавить строчку:
$q = iconv('UTF8', 'CP1251', $q);
иначе в select совалась строка поиска в UTF8. Почему - не знаю, ведь сайт в 1251. Но факт.
Наверное, правильнее не жестко 'UTF8' и 'CP1251' вписывать, а какие-то соостветствующие системе и сайту переменные.
Поиск по русским буквам стал работать (я его параллельно в текстовый файлик скидываю), но на экран сайта выдается "квадратиками".
Ява не может обрезать верхнюю половину кодовой таблицы?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#14 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 10:04 PM

хм.... ну а если у меня в CP1251 то что ж мне прописывать то )) в любом случае спасибо попробую

---------- Сообщение объединено ----------

как ни странно SHOW VARIABLES LIKE 'character_set_system'; тоже выдало urf8

удивительно но прописав эту строчку тоже все пошло как помаслу..... ну вот век живи - век учись...... - спасибо Изображение

а где у тебя квадратики? в выпадающем списке?
  • 0

#15 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 11 December 2011 - 10:08 PM

ну это то, что я и говорил )
а квадратиками выводит потому что в другую сторону не та кодировка...
попробуйте как у меня в коде, добавить (если нету)
mysql_query('set character set cp1251'); 
mysql_query('set character_set_connection=cp1251');
и хидер.
  • 0
502 Bad Gateway

#16 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 10:11 PM

ну я прописал только хидер header("Content-Type: text/html;charset=windows-1251");

и все чики пики ))) все-таки с кодировкой не так сложно как мне показалось.... просто не понятно почему приходится перекодировать ютф.... если его там нет )) но главное что все работает и я очень благодарен вам ребята Dbus, badisoft, - давно хотел это сделать - но все как-то руки не доходили...... а тут вуаля ))
  • 0

#17 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2011 - 10:12 PM

Похоже, и правда ява режет, хотя из меня спенциалист как балерина :(.
дополнил строчкой вывода в файл:
echo $row['name']."\n";
fwrite($fhandle,iconv('CP1251','UTF8',$row['name']."\n"));
в файл выводится совершенно нормально, в менюшку выбора - квадратиками :(.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 10:16 PM

в файл выводится совершенно нормально, в менюшку выбора - квадратиками


просто добавь в самое начало файла
header("Content-Type: text/html;charset=windows-1251");

---------- Сообщение объединено ----------

mysql_query('set character set cp1251');
mysql_query('set character_set_connection=cp1251');


а эти строчки у меня тоже есть только mysql.php а он же инклудится ...
  • 0

#19 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 11 December 2011 - 10:47 PM

просто добавь в самое начало файла
header("Content-Type: text/html;charset=windows-1251");

Да, спасибо! Не очень понимаю, как оно работает (остальное-то и так вполне нормально показывается в Win1251), но помогло :).

а эти строчки у меня тоже есть только mysql.php а он же инклудится ...

По дефолту (исходно, при распаковке из архива) оно там закомментировано.
Я ведь правильно понимаю, что надо либо set_character_Set на 1251 сменить, капк написано, либо iconv применять как я написал?
тогда второй вариант мне больше нравится, т.к. не надо менять важную переменную в процессе работы с базой.

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

PS. А где ширина окошка поиска задается? Что-то у меня оно короткое, раза в три короче штатного исходного. Поискал, но найти не смог. Собственно, я и для штатного окошка не понял, где задается ширина :).

Кстати, похоже lola банальный мошенник, выклянчивающий таким образом по 300-500р и потом благополучно с ними смывающийся. Мне он обратно ничего не перевел. Как я понимаю, Вам тоже. Ну и фиг с ним, не такая большая сумма за выяснение, что за человек.[COLOR="Silver"]

---------- Сообщение объединено ----------

Удалил. Надо таки нормально причесать, а потом выкладывать :).

А в index.tpl.html заменил только class="pform" на id="targetDiv", оно там один раз встречается.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#20 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 December 2011 - 11:23 PM

А где ширина окошка поиска задается? Что-то у меня оно короткое, раза в три короче штатного исходного

ширина элементарно - каждый под свой дизайн подстроит в инпут добавь style="width: 200px"
  • 0