[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что более накладно: сравнение или присваивание?
AllesKlar
Смысл в том, что нужно выкинуть флаг на событие.

$flag = false;
while ($while_condition) {
if($flag_condition && !$flag) { // каждый раз проверяем, установлен ли флаг
$flag = true;
}
}


$flag = false;
while ($while_condition) {
if($flag_condition) {
$flag = true; // даже если флаг уже установлен, все равно его выставим еще раз
}
}



_____________
[продано копирайтерам]
andrey888
в первом примере на одну операцию больше, поэтому если в контексте логики скрипта и то и то равносильно - то как говориться "если нет смысла - то смысла нет"


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Invis1ble
$flag = false;
while (!$flag && $while_condition) {
if($flag_condition) {
$flag = true;
}
}


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
Invis1ble
Не, не, цикл должен оттарабанить до конца :)

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

Поля в таблице :
group   |   accessory   |   min_count |     max_count
-----------------------------------------------------
* corb 3 4
* corb 1 2
big_auto corb 0 4
big_auto corb 1 5


Записи могут повторяться.
Для конкретной группы выбирается минимальное из min_count и максимальное из max_count
Группа * означает "любая группа"
Но, если в таблице есть запись для конкретной группы, то выбираются минимумы и максимумы только для неё.

В результате для группы big_auto должно быть min_count = 0, max_count = 5
А для группы over_auto, которой нет в таблице, должно быть min_count = 1, max_count = 4

вооот...
сначала летит запрос типа
SELECT * FROM table_name WHERE accessory = 'corb' AND (group =  'group_name' OR group='*')

и собстна в цикле сравниваются все эти минимумы и максимумы, но если мы вдруг натыкаемся на группу group_name, то дальше все записи для группы " * " игнорируются.

_____________
[продано копирайтерам]
sergeiss
По сути твой первый вариант, но запись компактнее и "красивее", что ли

$flag=false
while ($while_condition) {
$flag = $flag || $flag_condition;
}

Как только условие на флаг станет ТРУ, то флаг станет ТРУ. И дальше пофиг на следующие условия на флаг, они больше не будут проверяться. Флаг до конца цикла так и останется ТРУ.

PS. Есть у меня подозрение, что лучше сразу запрос сделать так, чтобы получать только нужные данные. Проще будет - просто взял готовые данные в ПХП и всё. И, скорее всего, быстрее.

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

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

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

user posted image
AllesKlar
sergeiss
Красиво smile.gif

Цитата (sergeiss @ 12.11.2015 - 06:05)
PS. Есть у меня подозрение, что лучше сразу запрос сделать так, чтобы получать только нужные данные. Проще будет - просто взял готовые данные в ПХП и всё. И, скорее всего, быстрее.


Даже не представляю, как это может выглядить.
Акромя UNION в голову не приходит ничего.
И потом, это MSSQL со своими очень странными правилами группировки smile.gif

_____________
[продано копирайтерам]
sergeiss
Цитата (AllesKlar @ 12.11.2015 - 14:52)
Даже не представляю, как это может выглядить.
Акромя UNION в голову не приходит ничего.

Это уже отдельная тема форума, мне так кажется smile.gif Создавай, бум думать. Если что, это мой принцип такой: сделать максимум возможного в БД, чтобы в ПХП только использовать готовый результат.

Цитата (AllesKlar @ 12.11.2015 - 07:41)
но если мы вдруг натыкаемся на группу group_name, то дальше все записи для группы " * " игнорируются

Вот эта логика не понятна. Но о ней пиши в той новой теме.

PS. Тут в соседней теме Игорь Васинский упражнялся с MSSQL, как раз с группировками...

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

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

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

user posted image
Быстрый ответ:

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