![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
VoTeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
И так по порядку:
1.Результат echo $q; select * from stati where text like '%КПК%' or name like '%смартфоны%' and kat='КПК' order by id desc 2.Результат echo mysql_error(); Ничего он не вывел 3.Теперь про $search_name
$search_name это название поля, через которое я ищу. Вроде все... а тут коментировать? вроде все понятно. Это сообщение отредактировал(а) VoTeR - 21.1.2006, 14:09 |
|||
|
||||
Kefir |
|
||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
Очень интересно каким образом переменная $search_name даёт в одном месте значение "КПК", а в другом "смартфоны". Я всегда считал это невозможным. Скинь полностью исходники. А то так у тебя такие парадоксы, что ничего не понятно. |
||||
|
|||||
VoTeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
Держи
|
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
гм... в общем несколько замечаний:
1. используй глобальные переменные ($_GET, $_POST etc.) 2. неправильно сделан запрос к базе. $search_name сначала надо разбить на слова и затем каждое слово искать при помощи LIKE. 3. так и не понял где вообще коннект к бд... где закрытие соединения... хотя главное, чтобы оно просто было ![]() Твои дальнейшие действия: После
ставишь echo $q; и смотришь какой запрос у тебя генерируется. Затем открываешь MySQL Query Browser или phpMySQL admin или любой другой фронтэнд для произведения запроса к БД и пытаешься выполнить тот запрос, который тебе показал скрипт (echo $q). Затем если всё хорошо, но результат не такой как ты хочешь, ищешь логическую ошибку в запросе и пытаешься её устранить. Если выполнение запроса возвращает ошибку опять же смотришь где напортачил и исправляешь. Итак, на данной стадии ты должен уже знать какой запрос должен генерировать твой скрипт для того чтобы БД возвращала нужные записи. Теперь ты пишешь ПХП, генерирующий нужный запрос. Таким образом, ты сможешь дойти до того, что твой код будет работать. Добавлено @ 15:19 да, и ещё, если что-то не понимаешь - RTFM. И уж потом сюда. |
|||
|
||||
VoTeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
конект к БД идет на гл. странице.делаю запрос после разбиения поля на слова он пишет:
select * from stati where text like '%Array%' or name like '%Array%' and kat='КПК' order by id desc
|
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
ну дык ясно что он будет слово Array подставлять. Даю пример того как должен выглядеть запрос при строке поиска "я хочу найти что-нибудь эдакое"
Это поиск по полю text. |
|||
|
||||
VoTeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
Ясно. я сделал, чтобы он искал по первому слову. но я же не знаю сколько кто будет вводить слов в поле поиска!
и вообще как сделать, чтобы он определял сколько слов в поле, а потом подставлял в запрос каждое слово. типа text like '%$search_bits[$i+1]%' |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
неужели это так сложно??
From now on, you're on your own. Это сообщение отредактировал(а) Kefir - 22.1.2006, 11:11 |
|||
|
||||
VoTeR |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
А дело в том, что во время запроса он не читает
Я поначалу что-то подобно пытался сделать.. а он не читал то, что между {} Добавлено @ 17:39 Вот код.
а вот что он выдает
На 55 строчке находится $q = "select * from stati where ".implode(" OR ", $query_bits)." and kat='$search_kat' order by id desc"; |
||||||
|
|||||||
VoTeR |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
И так получается:
Так он производит поиск по последнему слову, котороя я ввел в поле.
А так он ТОЖЕ ищет по последнему слову, но echo он выводит якобы 2 запроса: for($i = 0; $i < count($search_bits); $i++) { $query_bits = array("text LIKE '%".$search_bits[$i]."%'"); $q = "select * from stati where ".implode(" OR ", $query_bits)." and kat='$search_kat' order by id desc"; echo $q.'<br>'; } И так что получается в итоге: нода завпрос разбить на 3 части. и сделать что-то вроде
Этим я сделал(но 100% неправильно) implode(" OR ", $query_bits) должно показываться столько, сколько слов в поле => оно должно находиться между {}. А вот сам запрос НЕ должен копироваться... Ваши мысли, люди. |
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Модератор: VoTeR, ошибки учитесь отлавливать сами. Вам ПХП русским по белому пишет.
|
|||
|
||||
VoTeR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.1.2006 Репутация: -1 Всего: нет |
Спс. сделал. теперь с выделением как быть? выделяет только первое слово, введено в поле
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |