[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск в тексте
123456
К примеру у нас есть таблица вида:
id | text


text хранит данные в виде: "mul|1:car|3:style|2"


Мы передаем к примеру car|2

Нам надо сделать запрос, который будет возвращать записи, которые содержат в себе car|2, car|3 и т.д. Т.е. чтоб число было больше либо равно указанному.


Наведите на путь верный smile.gif
chee
Регулярные варажения тебе в помощь, они есть в mysql

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (123456 @ 26.10.2014 - 13:27)
Наведите на путь верный

Для начала надо правильно спроектировать БД. Почитай про нормализацию баз данных.

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

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

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

user posted image
123456
Цитата
Для начала надо правильно спроектировать БД.

Может подскажете как лучше сделать?
Лично у меня уже совершенно нет никаких идей.

В общем есть каталог домов.
Мне надо как-то описать, что имеется в домах.

Думал создать отдельную таблицу, где хранить в отдельных записях все объекты.

т.е. имеется основная таблица home с содержимым:
id | address

и вторая таблица obj с объектами:
id | id_home | key - (key хранит ключ на объект из массива с допустимыми объекутами)


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

И при поиске, должно выдать все дама, где на участке имеется дом с ХОТЯ БЫ:
a) тремя и более одноместными гаражами;
б) с одним одноместным и с одним двуместным гаражами;
с) с одним треместным гаражом
и т.д.

Т.е. выдать все возможные варианты.


если информация будет храниться в двух таблицах, то я не понимаю, каким запросом осуществлять поиск.

Если же информация храниться в одной таблице(как написано в первом посте), то можно просто перебрать все возможные варианты через LIKE
123456
таблица home с содержимым:
id | address
----------------------
1 | Советская
2 | Пушкинская
3 | Ленина


И вот вторая таблица obj с объектами:
id | id_home | key
----------------------
1 | 1 | 01
2 | 1 | 01
3 | 2 | 01
4 | 1 | 02
5 | 1 | 03


key хранит ключ на объект из массива:
$array = array('01' => array('name' => 'гараж для одной легковой машины', 'img' = '/01.png'),
'02' => array('name' => 'гараж для двух легковых машины', 'img' = '/02.png')
'03' => array('name' => 'Бассеин', 'img' = '/03.png')
'04' => array('name' => 'Баня', 'img' = '/04.png'));


Необходимо сделать запрос, который выведет все дома из таблицы home? где можно поставить 3 машины
AllesKlar
Улица и номер дома можно в одну таблицу, эта пара - уникальное значение, проще будет добавлять / обновлять.

ну, если сильно хочется, то можно так, как есть - две таблицы, дома отдельно, улицы отдельно.

Цитата
где можно поставить 3 машины

Гараж для трех машин или гараж для одной + гараж для двух тоже учитывать?

_____________
[продано копирайтерам]
123456
AllesKlar
А причем тут улицы и дома? Я совершенно о другом спрашиваю.

Цитата

Цитата
где можно поставить 3 машины

Гараж для трех машин или гараж для одной + гараж для двух тоже учитывать?



Цитата
К примеру пользователю надо найти дом, где на участке имеется гараж для трех легковых автомобилей:

И при поиске, должно выдать все дама, где на участке имеется дом с ХОТЯ БЫ:
a) тремя и более одноместными гаражами;
б) с одним одноместным и с одним двуместным гаражами;
с) с одним треместным гаражом
и т.д.

Т.е. выдать все возможные варианты.

AllesKlar
Цитата (123456 @ 26.10.2014 - 18:49)
AllesKlar
А причем тут улицы и дома? Я совершенно о другом спрашиваю.

аааа... ну тогда, наверное, не знаю (лениво ковыряя в носу)

_____________
[продано копирайтерам]
sergeiss
Цитата (123456 @ 26.10.2014 - 17:03)
Если же информация храниться в одной таблице(как написано в первом посте), то можно просто перебрать все возможные варианты через LIKE

Теоретически, можно и без машин обходиться. Раньше же без них жили, и ничаво, нормально было smile.gif Но с машинами как-то быстрее.
Так и при поиске данных есть определенные возможности, позволяющие осуществлять этот поиск намного быстрее. Хотя, конечно, можно и долго-долго перебирать "все возможные варианты".

Цитата (123456 @ 26.10.2014 - 17:03)
но дело в том, что будет еще поиск по домам.
К примеру пользователю надо найти дом, где на участке имеется гараж для трех легковых автомобилей:

И при поиске, должно выдать все дама, где на участке имеется дом с ХОТЯ БЫ:
a) тремя и более одноместными гаражами;
б) с одним одноместным и с одним двуместным гаражами;
с) с одним треместным гаражом
и т.д.

Т.е. выдать все возможные варианты.

если информация будет храниться в двух таблицах, то я не понимаю, каким запросом осуществлять поиск.

1. Делаем подзапрос, выбирающий айдишники домов из таблицы с гаражами, отвечающими заданным тобой условиям.
2. Этот подзапрос используется в основном запросе, теперь уже для получения инфы о самих домах, согласно выбранному списку айдишников.

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

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

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

user posted image
AllesKlar
sergeiss
ты упустил одну проблемку (я из вредности автору не стал разжовывать, ну тебе скажу smile.gif )
Нужны дома, где можно поставить ТРИ машины.
Но объекты не содержат количество машин. Объекты содержат id и описания.
Для каждой ситуации придется писать индивидуальные запросы...

или.. (как это у меня ) есть объект у которого есть параметр "тип": временнОй | количественный
Временной - всегда одна штука на все время аренды (ну, тут не аренда, нно смысл тот же)
Количественный - (время аренды) х (количество)
Вот тут примерно таже ситуация (допилить только)
И если объект количественный, то поиск идет с учетом этого количественного свойства. ну, или всем временнЫм загнать в количество единицу, так даже более универсально

_____________
[продано копирайтерам]
sergeiss
Цитата (AllesKlar @ 26.10.2014 - 20:32)
sergeiss
ты упустил одну проблемку

Я? Нет, я ничего не упустил smile.gif Я сразу же сказал, что:
Цитата (sergeiss @ 26.10.2014 - 16:23)
Для начала надо правильно спроектировать БД.



И я вовсе не утверждал, что предложенный им вариант смеси таблиц в БД и массивов в ПХП является каким-то правильным.

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

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

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

user posted image
AllesKlar
user posted image

_____________
[продано копирайтерам]
Быстрый ответ:

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