Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2011, 12:36   #21
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Jakethefish Посмотреть сообщение
Единственное что я могу посоветовать, это поменять соответсвующие куски кода и посмотреть что получиться.
Код:
$data = mysql_query( "SELECT * FROM material WHERE name LIKE '%$q%'" )
or die( mysql_error() );

while( $row = mysql_fetch_array( $data )){
        echo $row['name'] . " \n";
}
Код:
echo $row['name'] . " \n";
Эта команда выводит в HTML результаты поиска. То есть у вас в хтмл где-то должны быть результаты, не может яваскрипт из воздуха брать результаты. Так что попробуйте открыть исходный код страницы и посмотреть.
Так же бы пригодился анализ XHR приходящий с autocomplete.php, для этого надо иметь firebug, либо chrome. Но это уже полупроффессиональные инструменты.
не, не пашет((
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 12:53   #22
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию

Что значит "не пашет"? Слишком мало информации вы даете, поэтому трудно разрешить вашу проблему. Что произошло когда вы изменили код как я показал?

Попробуйте в базу данных внести такие значения как ПиСьМо или к примеру письмО.

Попробуйте через PHPMyAdmin посмотреть результат такого запроса
Код:
SELECT * FROM material WHERE name LIKE '%ПИСЬМО%'
Я предполагаю, что ваше "ПИСЬМО" обрезаться яваскриптом.
Jakethefish вне форума Ответить с цитированием
Старый 17.08.2011, 15:02   #23
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Jakethefish Посмотреть сообщение
Что значит "не пашет"? Слишком мало информации вы даете, поэтому трудно разрешить вашу проблему. Что произошло когда вы изменили код как я показал?

Попробуйте в базу данных внести такие значения как ПиСьМо или к примеру письмО.

Попробуйте через PHPMyAdmin посмотреть результат такого запроса
Код:
SELECT * FROM material WHERE name LIKE '%ПИСЬМО%'
Я предполагаю, что ваше "ПИСЬМО" обрезаться яваскриптом.
Не пашет - значит ничего не происходит - автозаполнение не работает.
Такой запрос как вы указали - работает в phpmyadmin - выдает и письмо и Письмо и ПИСЬМО.
значит проблема в коде.
а как это - яваскрипт обрезает?
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 15:04   #24
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

может кодировка виновата?
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 15:11   #25
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

и к примеру ПиСЬмО тоже не находит
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 15:27   #26
Jakethefish
Форумчанин
 
Регистрация: 13.11.2009
Сообщений: 121
По умолчанию

Цитата:
Сообщение от kyrychenko.mitya Посмотреть сообщение
Не пашет - значит ничего не происходит - автозаполнение не работает.
Такой запрос как вы указали - работает в phpmyadmin - выдает и письмо и Письмо и ПИСЬМО.
значит проблема в коде.
а как это - яваскрипт обрезает?
Если через mysql приходит все 3 варианты, и strtolower и mt_strtolower тоже работают правильно, это значит что javascript более чем наверняка предлагает всего два варианта. все маленькими и первая заглавная, остальные варианты стираются, как повторные. Думаю что так.
Jakethefish вне форума Ответить с цитированием
Старый 17.08.2011, 15:28   #27
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kyrychenko.mitya Посмотреть сообщение
и к примеру ПиСЬмО тоже не находит
Попробуйте заменить ваш цикл while в autocomplete.php на след. код:
PHP код:
$data mysql_query"SELECT * FROM material" )
or die( 
mysql_error() );

if(
mysql_num_rows($data) > 0){
    while(
$row mysql_fetch_assoc($data)){
        if(
mb_stripos($row['name'], $q0'UTF-8') !== FALSE){
            echo 
$row['name'],"\n";
        }
    }

Вообще, конечно, правильнее выбирать результаты при помощи LIKE прям в SQL-запросе.

Последний раз редактировалось Andkorol; 17.08.2011 в 15:35. Причина: $q
Andkorol вне форума Ответить с цитированием
Старый 17.08.2011, 16:02   #28
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Попробуйте заменить ваш цикл while в autocomplete.php на след. код:
PHP код:
$data mysql_query"SELECT * FROM material" )
or die( 
mysql_error() );

if(
mysql_num_rows($data) > 0){
    while(
$row mysql_fetch_assoc($data)){
        if(
mb_stripos($row['name'], $q0'UTF-8') !== FALSE){
            echo 
$row['name'],"\n";
        }
    }

Вообще, конечно, правильнее выбирать результаты при помощи LIKE прям в SQL-запросе.
call to undefined finction mb_stripos
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 16:11   #29
kyrychenko.mitya
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 26
По умолчанию

как это так?
kyrychenko.mitya вне форума Ответить с цитированием
Старый 17.08.2011, 16:12   #30
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kyrychenko.mitya Посмотреть сообщение
call to undefined finction mb_stripos
Странно, а на mb_strtolower() в вашем оригинальном коде не ругалось также...?
Цитата:
if ( strpos(mb_strtolower( $row['name'] ), $q ) !== false ) {
?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции для работы с регистром FatalLight Общие вопросы C/C++ 0 20.01.2011 21:19
Как работать с регистром 1С через OLE Toreno_87 Помощь студентам 0 22.07.2010 00:27
Найти слово с любым регистром Shouldercannon Общие вопросы Delphi 3 28.06.2009 17:01
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
проблема с регистром в запросе SQL Abbatik Помощь студентам 2 28.01.2008 00:48