|
|
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Я пишу быстрый фильтр для магазина OpenCart. Требуется фильтрация по атрибутам товара, цене, наличию скидки, категории и производителю. Подумав я решил сделать таблицу-кеш для всех вариаций опций: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Наполнил таблицу данными: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. И написал такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Он работает быстро и хорошо, но есть одна проблема. Допустим мы фильтруем по категории и производителю, все другие группы рассчитаны верно, но в группе категория и производитель доступны только выбранные опции. Необходимо сделать возможность выбирать в одной категории двух производителей, то есть сделать множественный выбор. Возможно ли сделать это в одном запросе? Или у меня неправильная структура? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 08:13:18 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
gvozd1989, подход в принципе не правильный надо таблиса товара id_prod;name таблица справочник атрибутов id_spr; name таблица атрибутов id_attr;id_prod;id_spr;value_string;value_ тогда можно будет и добавлять любые атрибуты, и фильтровать как угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 09:41:11 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
поторопился таблица српавочник имён товара id_prod;name таблица справочник атрибутов id_spr; name таблица товара id_attr;id_prod;id_spr;value_string;value_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 09:43:01 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
gvozd1989 Код: sql 1. 2. 3. 4. "уж сколько раз твердили миру"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 09:58:57 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
вадя, Сама таблица товаров есть. Если предположить, что есть таблица справочник атрибутов, то как будет выглядеть запрос? tanglir, Расшифруйте, пожалуйста, что имеется в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 16:40:07 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
вот вариант с данными damp Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. немного отличается от предыдущего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 19:55:12 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
gvozd1989, tanglir имел ввиду, что скуль надо таки учить... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 20:55:03 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
вадя, Спасибо, но это немного не то, о чем я спрашивал. Меня интересует больше не сама фильтрация, а расчет возможных опций. К примеру выбрал одного производителя, и все опции пересчитали свое количество, но так, чтобы другие производители были не по 0, а чтоб их можно было добавить в фильтрацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 11:20:28 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
бери сфинкс. на нём фасеты делаются почти из коробки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 11:33:26 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
ScareCrow, Я думал об этом, но хочу понять можно ли обойтись без него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 11:36:31 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
gvozd1989, ну так тут надо просто иметь знания как правильно составлять запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2015, 15:04:23 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
gvozd1989что имеется в виду?gvozd1989 Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 08:28:57 |
|
||
|
Фильтр для магазина (фасетный поиск)
|
|||
|---|---|---|---|
|
#18+
tanglir, Спасибо, я понял о чем речь. Скажите, допустимо ли использовать в таком случае, GROUP BY CONCAT(pf.`option`, pf.value)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2015, 11:21:24 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39094066&tid=1832540]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
108ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 425ms |

| 0 / 0 |
