Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> На сервере не работает запрос... поиск по таблице 
:(
    Опции темы
Coder
Дата 17.3.2007, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



на PHP есть такой запрос:

Код

SELECT * FROM texts WHERE(locate(lower('".$find_str."'),lower(text))>0)";


на localhost (Windows) он выполняется и выбирает найденные поля. на сервере (Linux) запрос выполняется, но ни одного поля не возвращает. В чем проблема?

хостинг у ЛидерХост
PM MAIL   Вверх
skyboy
Дата 17.3.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(Coder @  17.3.2007,  10:27 Найти цитируемый пост)
text

вообще, это название типа поля. именно по причине таких конфликтов рекомендуется все имена таблиц и полей заключать в обратные апострофы "`":
Код

SELECT * FROM `texts` WHERE(locate(lower('".$find_str."'),lower(`text`))>0)"

ну, и просто не могу не спроситЬ: а ты уверен, что нужные данные есть? 
а ты уверен что php-скрипт на другом сервере с другими настройками вдруг не проявил скрытые ранее ошибки и что в "$find_str" именно то, что тебе надо?

Добавлено @ 11:58 
Цитата(Coder @  17.3.2007,  10:27 Найти цитируемый пост)
на сервере (Linux) запрос выполняется, но ни одного поля не возвращает.

может, настройка РНР такая, что не валится на ошибках работы с БД. либо включи error_report, чтоб все ошибки, даже советы(notice) выдавало, либо погляди, что после выполнения запроса выдаст mysql_error. А лучше - сделай и то, и то.

Добавлено @ 12:00 
и вообще: указать версии РНР и MySQL на первом и втором серверах не так уж и сложно ;)
PM MAIL   Вверх
Coder
Дата 17.3.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



Цитата

ну, и просто не могу не спроситЬ: а ты уверен, что нужные данные есть? 

да, это точно.

Цитата

а ты уверен что php-скрипт на другом сервере с другими настройками вдруг не проявил скрытые ранее ошибки и что в "$find_str" именно то, что тебе надо?

в этом я тоже уверен!  выводил промежуточные результаты на экран (строку поиска, запрос и т.п.)

у меня версии:
PHP: 5.2.0
MySQL: 5.0.18

Сервер:
PHP: 4.4.6
MySQL: 4.1.18

PM MAIL   Вверх
skyboy
Дата 17.3.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



экранирование кавычек проверял?
mysql_error молчит? 
почему отвечаешь только на половину вопросов?  smile 
PM MAIL   Вверх
Coder
Дата 18.3.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



skyboy, потому что не было возможности проверить все за раз.

Цитата

экранирование кавычек проверял?
mysql_error молчит? 

проверял, не помогает.

еррор тоже молчит.
PM MAIL   Вверх
skyboy
Дата 18.3.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



значит так. какой-нить администраторный софт имеется(хотя бы тот же phpMyAdmin) на сервере? перед выполнением "MYSQL_QUERY($sql)" делаем "echo $sql", копируем полученный текст запроса в консоль того самого админ-софта и смотрим на результат выполнения "вне скрипта". заодно глядим на внешний вид сгенерированного запроса - может, вопросы сами отпадут?

Добавлено @ 19:36 
заодно, выкладывай сгенерированный запрос сюда: полюбуемся smile
PM MAIL   Вверх
Coder
Дата 19.3.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



вот вывод echo $sql
эту строку я задал выполнить в phpMyAdmin. 
Код

SELECT * FROM texts WHERE(locate(lower('идея'),lower(text))>0)


и получил результат - строка ИДЕЯ была найдена! 
вот что получил в виде PHP кода от phpMyAdmin. в принипе тоже самое.
Код

$sql = 'SELECT * FROM texts WHERE(locate(lower(\'идея\'),lower(text))>0)';


пишу этот код в мой скрипт и все равно ничего не находится....

Добавлено @ 09:39 
хочу добавить, что кодировка везде у меня одна cp1251.
PM MAIL   Вверх
Coder
Дата 19.3.2007, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



все! проблему решил!  smile 

Это сообщение отредактировал(а) Coder - 19.3.2007, 10:38
PM MAIL   Вверх
skyboy
Дата 19.3.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Coder, приведи полный код обработки результата. вдруг ты просто где-то опечатался при парсинге результата?
PM MAIL   Вверх
Coder
Дата 19.3.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



короче у меня не работало из-за того что я сам допустил ошибку. у PHP4 нет функции str_ireplace() плюс нужно было перед всей работой выполнить запрос SET NAMES CP1251.

интересно то что PHP еррор молчал. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1212 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.