Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
andrweb
Отправлено: 31 Июля, 2012 - 16:51:08
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


Помог: 0 раз(а)




Здравствуйте жители php.su

Есть вот такой вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest'))
  4. {
  5.     exit;
  6. }
  7. header('Content-type: text/html; charset=utf-8');
  8. include "../admin/block/db.php";
  9. mysql_set_charset('windows-1251');
  10. $search_string = mysql_escape_string($_POST["search_string"]);
  11. $search_string = substr($search_string, 0, 64); // Обрезаем поисковую фразу до 64 символов
  12. $search_string = iconv("UTF-8", "windows-1251", $search_string);
  13. $search_string = preg_replace("/[^\w\x7F-\xFF\s]/"," ", $search_string); // убираем "ненормальные" символы
  14.  
  15. $search_string = split(" ", $search_string);// разбиваем слова в массив
  16.  
  17. //LEFT JOIN category ON product.category=category.cat_id
  18. for ($i=0; $i<=count($search_string); $i++)
  19. {
  20.         $d.=" AND product.header LIKE '%".$search_string[$i]."%'";
  21. }
  22. $product_query = mysql_query("SELECT product.header, product.url, category.header AS category_header, category.url AS category_url FROM `product` JOIN `category` WHERE product.category=category.id AND product.visible='1' ".$d." ORDER BY product.category ASC limit 15");
  23.  
  24. $category = mysql_fetch_array($product_query);
  25.  
  26. if (mysql_num_rows($product_query) > 0)
  27. {
  28.     //$category_query = mysql_query("SELECT * FROM `category` WHERE visible='1' AND ");
  29.     $out = "";
  30.         $cat = "";
  31.     while ($category = mysql_fetch_array($product_query))
  32.     {
  33.         if ($cat == "" || $cat != $category['category_header'])
  34.         {
  35.             $out .= '<div style="margin:0px; margin-top:3px;">'.$category['category_header'].'</div>';
  36.         }
  37.         $out .= '<p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/'.$category['category_url'].'/'.$category['url'].'.html">'.$category["header"].'</a></p>';
  38.         $cat = $category['category_header'];
  39.     }
  40. }
  41. else
  42. {
  43.     $out = FALSE;
  44. }
  45.  
  46. $out = iconv("windows-1251", "UTF-8", $out);
  47. $data = array("result" => $out);
  48. echo json_encode($data);
  49.  


- Кодировка поля таблицы cp1251_general_ci
- Тип данных char(255)
- Текст ищет отлично
Проблема заключается в следующем:
- не корректно работает поиск по числовым значениям

К примеру:
Требуется найти товар с названием "Шиномонтажный станок 1885 it"
Поиск делаю по маркеровке (1885)
Забиваю "18" - выводит аяксом несколько товаров, в том числе и требумый.
Забиваю "188" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!
Забиваю в поиск "1885" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!

Перерыл интернет и съел себе весь мозг - но ничего не нашел...
Подскажите пожалуйста, что не так?


-----
Горбатого могила исправит.
 
 Top
Viper
Отправлено: 31 Июля, 2012 - 20:25:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




andrweb пишет:
Забиваю "18" - выводит аяксом несколько товаров, в том числе и требумый.
Забиваю "188" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!
Забиваю в поиск "1885" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!


для каждого пункта выведите sql-запрос на страницу и выполните в каком-нибудь менеджере. И опишите результат.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
andrweb
Отправлено: 31 Июля, 2012 - 20:52:01
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


Помог: 0 раз(а)




Viper пишет:
andrweb пишет:
Забиваю "18" - выводит аяксом несколько товаров, в том числе и требумый.
Забиваю "188" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!
Забиваю в поиск "1885" - выводит аяксом "ничего не находит", хотя в базе от есть и должен выводиться!


для каждого пункта выведите sql-запрос на страницу и выполните в каком-нибудь менеджере. И опишите результат.

Запрос 1.
PHP:
скопировать код в буфер обмена
  1. $product_query = mysql_query("SELECT product.header, product.url, category.header AS category_header, category.url AS category_url FROM `product` JOIN `category` WHERE product.category=category.id AND product.visible='1' AND product.header LIKE '%18%' ORDER BY product.category ASC limit 15");

Консоль:
POST http://site[dot]ru/ajax/ajax_search.php 200 OK 80ms

Параметры POST:
search_string=18

Ответ консоли:
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"result":"<div style=\"margin:0px; margin-top:3px;\">\u0428\u0438\u043d\u043e\u043c\u043e\u043d\u0442\u0430\u0436\u043d\u044b\u0435 \u0441\u0442\u0435\u043d\u0434\u044b<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/shinomontazhnye_stendy\/trommelberg_1850.html\">\u0428\u0438\u043d\u043e\u043c\u043e\u043d\u0442\u0430\u0436\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u043e\u043a Trommelberg 1850 \u043f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/shinomontazhnye_stendy\/dunlop_dtm185.html\">\u0428\u0438\u043d\u043e\u043c\u043e\u043d\u0442\u0430\u0436\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u043e\u043a DUNLOP DTM185 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/a><\/p><div style=\"margin:0px; margin-top:3px;\">\u0412\u0443\u043b\u043a\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vulkanizatory\/aet_db-18.html\">\u0412\u0443\u043b\u043a\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440 AE&T DB-18<\/a><\/p><div style=\"margin:0px; margin-top:3px;\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u043c\u0430\u0441\u043b\u0430<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/ustanovki_dlya_zameny_masla\/aet_3181.html\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u043c\u0430\u0441\u043b\u0430 AE&T 3181<\/a><\/p><div style=\"margin:0px; margin-top:3px;\">\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0421\u0422\u041e<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/oborudovanie_sto\/stend_r185.html\">\u0421\u0442\u0435\u043d\u0434 \u0420185 \u0434\u043b\u044f \u0440\u0430\u0441\u0442\u043e\u0447\u043a\u0438 \u0442\u043e\u0440\u043c\u043e\u0437\u043d\u044b\u0445 \u0431\u0430\u0440\u0430\u0431\u0430\u043d\u043e\u0432<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/oborudovanie_sto\/ustanovka_r186.html\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0420186 \u0434\u043b\u044f \u0448\u043b\u0438\u0444\u043e\u0432\u043a\u0438 \u043a\u043b\u0430\u043f\u0430\u043d\u043e\u0432<\/a><\/p><div style=\"margin:0px; margin-top:3px;\">\u0421\u0442\u0435\u043d\u0434\u044b \u0440\u0430\u0437\u0432\u0430\u043b-\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/stendy_razval-skhozhdeniya\/trommelberg_urs1805.html\">\u0421\u0442\u0435\u043d\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0443\u0433\u043b\u0430 \u043a\u043e\u043b\u0435\u0441 (\u0440\u0430\u0437\u0432\u0430\u043b-\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435) Trommelberg URS1805<\/a><\/p><div style=\"margin:0px; margin-top:3px;\">\u0412\u0438\u043d\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u044b<\/div><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/airpol_k-18.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 Airpol K-18 \u0441 \u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_genesis_18,5_8_10_500.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC GENESIS 18,5 8\/10\/500<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_genesis_18,5_13_500.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC GENESIS 18,5 13\/500<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_formula_18,5_08_10.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC FORMULA 18,5 08\/10<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_formula_18,5_13.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC FORMULA 18,5 13<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_formula.e_18,5_13.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC FORMULA.E 18,5 13<\/a><\/p><p style=\" line-height:17px;\"><a style=\"text-decoration:none;\" href=\"\/catalog\/vintovye_kompressory\/abac_formula.e_18,5_08_10.html\">\u0412\u0438\u043d\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440 ABAC FORMULA.E 18,5 08\/10<\/a><\/p>"}


result json:
CODE (htmlphp):
скопировать код в буфер обмена
  1. "<div style="margin:0px; margin-top:3px;">Шиномонтажные стенды</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/shinomontazhnye_stendy/trommelberg_1850.html">Шиномонтажный станок Trommelberg 1850 полуавтоматический</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/shinomontazhnye_stendy/dunlop_dtm185.html">Шиномонтажный станок DUNLOP DTM185 автоматический</a></p><div style="margin:0px; margin-top:3px;">Вулканизаторы</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vulkanizatory/aet_db-18.html">Вулканизатор AE&T DB-18</a></p><div style="margin:0px; margin-top:3px;">Установки для замены масла</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/ustanovki_dlya_zameny_masla/aet_3181.html">Установка для сбора масла AE&T 3181</a></p><div style="margin:0px; margin-top:3px;">Оборудование СТО</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/oborudovanie_sto/stend_r185.html">Стенд Р185 для расточки тормозных барабанов</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/oborudovanie_sto/ustanovka_r186.html">Установка Р186 для шлифовки клапанов</a></p><div style="margin:0px; margin-top:3px;">Стенды развал-схождения</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/stendy_razval-skhozhdeniya/trommelberg_urs1805.html">Стенд контроля угла колес (развал-схождение) Trommelberg URS1805</a></p><div style="margin:0px; margin-top:3px;">Винтовые компрессоры</div><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/airpol_k-18.html">Винтовой компрессор Airpol K-18 с ременным приводом</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_genesis_18,5_8_10_500.html">Винтовой компрессор ABAC GENESIS 18,5 8/10/500</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_genesis_18,5_13_500.html">Винтовой компрессор ABAC GENESIS 18,5 13/500</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_formula_18,5_08_10.html">Винтовой компрессор ABAC FORMULA 18,5 08/10</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_formula_18,5_13.html">Винтовой компрессор ABAC FORMULA 18,5 13</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_formula.e_18,5_13.html">Винтовой компрессор ABAC FORMULA.E 18,5 13</a></p><p style=" line-height:17px;"><a style="text-decoration:none;" href="/catalog/vintovye_kompressory/abac_formula.e_18,5_08_10.html">Винтовой компрессор ABAC FORMULA.E 18,5 08/10</a></p>"


Запрос 2.
PHP:
скопировать код в буфер обмена
  1. $product_query = mysql_query("SELECT product.header, product.url, category.header AS category_header, category.url AS category_url FROM `product` JOIN `category` WHERE product.category=category.id AND product.visible='1' AND product.header LIKE '%188%' ORDER BY product.category ASC limit 15");


Консоль:
POST http://site[dot]ru/ajax/ajax_search.php 200 OK 67ms

Параметры POST:
search_string=188

Ответ консоли:
{"result":""}

result json:
result ""

Запрос 3.
PHP:
скопировать код в буфер обмена
  1. $product_query = mysql_query("SELECT product.header, product.url, category.header AS category_header, category.url AS category_url FROM `product` JOIN `category` WHERE product.category=category.id AND product.visible='1' AND product.header LIKE '%1885%' ORDER BY product.category ASC limit 15");


Консоль:
POST http://site[dot]ru/ajax/ajax_search.php 200 OK 162ms

Параметры POST:
search_string=1885

Ответ консоли:
{"result":""}

result json:
result ""
(Добавление)
Все считывает и понимает...
По-мойму что-то с базой данных... Она не воспринимает числовые значения адекватно...
Можете протестировать здесь eurogrant{dot}ru. Справа вверху поиск...

(Отредактировано автором: 31 Июля, 2012 - 20:54:19)



-----
Горбатого могила исправит.
 
 Top
andrweb
Отправлено: 02 Августа, 2012 - 22:00:23
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


Помог: 0 раз(а)




Ответ найден.
Тема закрыта!


-----
Горбатого могила исправит.
 
 Top
filko
Отправлено: 12 Октября, 2012 - 09:37:58
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Отлично.. Почему не поделится решением вопроса? Вы ведь за помощью на форуме обращаетесь.. Почему не помочь еще кому-то.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB