[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: построение сложного SQL запроса
imediasun
Существует передача $_GET['q'] в JavaScript в поисковую форму автозаполнения.
Проблема состоит в том что при начале заполнения формы выводятся и ключевые слова лежащие и в других полях строки базы данных. смотрите ссылку на форму введите видео и почему то на ряду с ключевым словом "видео дизайн" выводятся и ключевые слова находящиеся в той же строке базы "дизайнерские услуги" может как то установить условие при выводе принт

$sql_key = " SELECT * FROM `advert`
WHERE
`category` LIKE '"
.mysql_real_escape_string($_GET['q'])."%' OR
`subcategory` LIKE '"
.mysql_real_escape_string($_GET['q'])."%' OR
`keywords` LIKE '"
.mysql_real_escape_string($_GET['q'])."%'
ORDER BY
`category`, `subcategory`, `keywords`, `rate` "
;
$query_key=mysql_query($sql_key)or die (mysql_error());
while($row_key=mysql_fetch_assoc($query_key)){
print $row_key['category'].PHP_EOL;
print $row_key['subcategory'].PHP_EOL;
print $row_key['keywords'].PHP_EOL;
}
sergeiss
imediasun - ты более четко сформулируй вопрос smile.gif Всякие там "идите сюда на видео смотреть" замени на СВОЁ текстовое описание тут в теме. В т.ч. объясни, что должно быть и что получаешь вместо этого.
И запрос покажи не в таком виде, а как он уже окончательно выглядит перед отправкой в БД.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
imediasun
Должно быть так как в Гугл например, вводишь начальные буквы слова и появляются те слова (а они хранятся в базе в трех полях [category][subcategory][keywords])буквы которых соответствуют набранным, а сейчас появляются все слова которые хранятся в этой строке базы данных в которой хоть одно поле соответствует набранным буквам.
А как по другому сформировать запрос я не знаю. А для лучшей наглядности посмотрите саму форму по ссылке. Спасибо
inpost
Перед выводом проверяй на совпадение, к примеру, через то же stripos, или регулярку.
if($x = 10) {echo $x;}


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
imediasun
Можешь показать как именно проверять не на таком примере а на моем коде, потому что я не могу понять как я могу проверить совпадение, хотя у меня приходит $_GET['q']?, может через него как то
sergeiss
imediasun - вот честно скажу, не ходил по ссылке smile.gif Не люблю я так бегать куда-то. Но вот ты описал проблему и уже понятно, что ты хочешь и что не получается. Вообще говоря, "правильный вопрос содержит в себе половину решения" (С) - придумано не мной, но я с этим согласен.

Цитата (imediasun @ 2.01.2013 - 22:29)
появляются те слова (а они хранятся в базе в трех полях [category][subcategory][keywords])буквы которых соответствуют набранным, а сейчас появляются все слова которые хранятся в этой строке базы данных в которой хоть одно поле соответствует набранным буквам.


Теперь давай смотреть, ПОЧЕМУ не получается.
Ты хочешь выводить, судя по цитате, только те слова (из отдельных колонок), что соответствуют ключу. Но выводишь все три колонки! Так ты прежде, чем выводить, проанализируй содержимое. Если, допустим, $row_key['category'] соответствует критерию выбора, то выводишь оттуда данные; если нет, то пропускаешь. То есть, иными словами, тебе перед каждым принтом надо добавить проверку. inpost сказал всё то же самое, что и я, только очень кратко smile.gif

"Как" проверять - inpost сказал. Только регулярку не надо... Тут простой случай. И зайти на http://php.net, найди там и скачай документацию. Хотя, конечно, можешь и он-лайн версией пользоваться.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
imediasun
так чем проверять, напиши просто как бы ты сделал, там же на проверку наверное функция какая то должна быть
inpost
imediasun
Не понимаю я вопроса про $_GET, когда у тебя массив находится в $row_key...
К тому же я дал ответ, stripos или регулярка. Мало?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
sergeiss
Цитата (imediasun @ 2.01.2013 - 23:38)
там же на проверку наверное функция какая то должна быть

тебе ж ответили уже:
Цитата (inpost @ 2.01.2013 - 22:34)
через то же stripos

Последнее слово - это и есть имя функции smile.gif А если найдешь описалово по ссылке, что я дал, то рядом с этой функцией и другие есть.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
imediasun
а как практически это может выглядеть в коде, к сожалению не обладаю базовыми знаниями
inpost
Тогда отличный повод получить базовые знания. Покупай учебник по PHP и садись изучать smile.gif
За тебя делаем только за деньги. Для этого даёшь задание в разделе: "проекты". На шару не даём готовый код.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
imediasun
помогите пожалуйста у меня нет денег, подскажите, для вас же это семечки, друзья, не в деньгах же счастье, очень нужна помощь в этом вопросе
inpost
Зачем тебе? Для зачета?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.