PHP. Один SELECT и несколько разных условий

12
ДП
На сайте с 23.11.2009
Offline
203
#11

Ну вообще это задача БД выбирать данные и 10 запросов такого типа на страницу - это не страшно, особенно если в базе индексы проставить.

Вы для начала замеряйте сколько в увас по времени разные вариванты занимают. а потом уже отптимизируйте.

Ну и на крайний случай - выбирайте все по общему условию, а сортируйте по отличающемуся уже в php

hitboss
На сайте с 15.01.2015
Offline
61
#12
knak:
не совсем понял как мне потом эти данные вывести на страницу, чтобы iddeck 25 и 26 были раздельны

получаете все данные в массив

разбираете его согласно логике

и выводите в нужных местах

как это делать в вашем случае- зависит от логики сайта

мне понятия iddeck и cardclass вообще ничего не говорят, поэтому конкретно сказать и не могу)

бизнес логика все решает

может быть проще вообще забить на оптимизацию запросов и вместо этого кэшировать всю страницу

K
На сайте с 17.05.2016
Offline
25
#13
hitboss:


бизнес логика все решает
может быть проще вообще забить на оптимизацию запросов и вместо этого кэшировать всю страницу

Спасибо за совет)

вот тут Вы оказались очень правы. В пятницу (еще утром) поставил плагин кеширующий и нагрузка упала в несколько раз и больше не болтается за гранью допустимого. Если конечно статистика Begetа не сломалась на все вы выходные :)

Но всё же, это полумера... Я толи туплю, толи чего-то в принципе не знаю. Вы писали

hitboss:

получаете все данные в массив
разбираете его согласно логике
и выводите в нужных местах

Ну вот сделал я запрос

SELECT * FROM decks WHERE value != '0' AND ( (iddeck='25' AND cardclass='7') OR (iddeck='26' AND cardclass='0') )

Как в этом случае выводить сначала данные, соответствующие iddeck='26' AND cardclass='0', потом кусок текста, а дальше данные соответствующие iddeck='25' AND cardclass='7' ?

---------- Добавлено 06.06.2016 в 09:24 ----------

Дикий пионер:
Ну вообще это задача БД выбирать данные и 10 запросов такого типа на страницу - это не страшно, особенно если в базе индексы проставить.
Вы для начала замеряйте сколько в увас по времени разные вариванты занимают. а потом уже отптимизируйте.

Ну и на крайний случай - выбирайте все по общему условию, а сортируйте по отличающемуся уже в php

Я глядя на страницу, состоящую из пачки SELCTOв боялся, что это грузит сайт, но я так понял (Вы не первый пишите об этом), что это наверное самый экономичный вариант. Я просто не программист особо. Купил сайт и решил его модернизировать немного, зная примерно, какие есть возможности PHP. Потому наверное такие неправильные вопросы и возникают.

Дикий пионер:
выбирайте все по общему условию, а сортируйте по отличающемуся уже в php

вот я для этого и создавал эту тему. Как выбрать всё, а потом вывести на сайт в разных местах в нужно мне порядке? Здесь ORDER BY не поможет.

Проверенная видеореклама (https://goo.gl/vhomjx) для любых сайтов Нормальные пацаны покупают и продают сайты здесь (https://goo.gl/nKv5Vk)
M
На сайте с 04.12.2013
Offline
223
#14

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

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий