Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Что более накладно: сравнение или присваивание?
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




Смысл в том, что нужно выкинуть флаг на событие.

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


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



--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
andrey888  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 793
Пользователь №: 27801
На форуме: 5 лет, 6 месяцев, 26 дней
Карма: 14




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


--------------------
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11787
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 13 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 13 дней


$flag = false;
while (!$flag && $while_condition) {
if($flag_condition) {
$flag = true;
}
}


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




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, то дальше все записи для группы " * " игнорируются.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14973
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




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

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

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

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

Это сообщение отредактировал sergeiss - 12.11.2015 - 16:35


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

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

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

user posted image
PMICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 10 дней
Карма: 170




sergeiss
Красиво smile.gif

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


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


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14973
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 1 день
Карма: 443




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

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

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

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

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

Это сообщение отредактировал sergeiss - 12.11.2015 - 16:42


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса