Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как задать условие с несколькими значениями? 
V
    Опции темы
andro_id
Дата 16.5.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



Есть конструкция:
Код

if($query_data["device_status"] == 'В ремонте') {
        $bgcolor = '#FF8533';
    } else {
        $bgcolor = '';
    }

А как сделать подсветку если статусов не 1, а 5? Не громоздить же 5 таких условий.
Можно конечно прописать в базе, но это добавит лишний запрос. Думаю есть более простой способ, о котором я не знаю. Подскажите пожалуйста.
PM MAIL WWW ICQ Skype   Вверх
WolfON
Дата 16.5.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: 6
Всего: 8



Код

$statuses = array('В ремонте', 'Работает', 'С3.14зжено');
$bgcolor = '';
if (array_search($query_data["device_status"],$statuses) !== false)
  $bgcolor = '#FF8533';

Нэ? smile 
PM MAIL ICQ   Вверх
CyClon
Дата 16.5.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



array_search возвращает ключ... Если он не нужен, нужно юзать in_array.

По сабжу, есть операторы AND и &&.

Например, if ($var == 1 && $var2 == 2 && $var3 == 3) { ... }.


--------------------
user posted image
PM   Вверх
andro_id
Дата 16.5.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



WolfON, немного не понял это
Код

$statuses = array('В ремонте', 'Работает', 'С3.14зжено');
$bgcolor = '';
if (array_search($query_data["device_status"],$statuses) !== false)
  $bgcolor = '#FF8533';

 суть в том, что каждому статусу должен соответствовать свой цвет. Я предполагал, что можно как-то прикрутить массив, но пока не знаю как.
PM MAIL WWW ICQ Skype   Вверх
CyClon
Дата 16.5.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 3
Всего: 4



Код
<?php

$info['red'] = 'В ремонте';
$info['green'] = 'Готов';
$info['blue'] = 'Обработка заказа';

if ($color = array_search($query_data['device_status'], $info)) {
    $bgcolor = $color;
} else {
    $bgcolor = '';
}

?>



--------------------
user posted image
PM   Вверх
andro_id
Дата 16.5.2007, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



CyClon, ага, наверное так. Спасибо. Завтра попробую.

З.Ы.: эх, постов маловато, не могу пока плюс поставить.
PM MAIL WWW ICQ Skype   Вверх
teroni
Дата 16.5.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Код
<?php
$color['В ремонте'] = 'red';
$color['Готов'] = 'green';
$color['Обработка заказа'] = 'blue';

$bgcolor = (@isset($color[$device_status])) ? $color[$device_status] : '';
?> 

По-простому smile

Это сообщение отредактировал(а) teroni - 16.5.2007, 23:24
PM MAIL   Вверх
BuShaRt
Дата 17.5.2007, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



teroni
@isset - это что за извращение?
PM MAIL   Вверх
teroni
Дата 17.5.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Это чтобы не ошибки не было если $device_status не установлена. Если есть уверенность, что оно установлено, то собаку можно убрать.
PM MAIL   Вверх
BuShaRt
Дата 17.5.2007, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



teroni
isset тогда на что?
Ладно мы тут с GZep спорили, что юзать isset или @, но вот, чтоб @isset - это нечто совсем новенькое smile

Вообще можно писать много чего интересного, если юзать @, только краткость основанная на @ в большинстве своем вовсе не сестра таланта, а скорей небрежность. К сожалению, очень мало кто понимает, как должен выглядить код в идеале, а то и понятно, не одни месяц может уйти на отучивание от вредных привычек...
PM MAIL   Вверх
teroni
Дата 17.5.2007, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Хотите сказать, что isset($color[$device_status]) не выдаст ошибку при неустановленном $device_status? smile 
Точно, здесь правильнее isset($color[@$device_status]) будет. 
Но все же думаю, что $device_status будет установлен полюбому, поэтому собаки можно выкинуть.
PM MAIL   Вверх
skyboy
Дата 17.5.2007, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



teroni, ошибку(error) и предупреждение(warning) - нет, не выдаст. подсказку(notice) - выдаст. если мне память не изменяет.
С другой стороны, раз тут уже споры о смысле жизни пошли и мой троллинг ничего не испортит переменные лучше инициализировать дефолтнымии значениями, а потом уже перекрывать их значениями из $_GET/$_POST. А то получается, что надо вывести статус, а статус неопределен... Так зачем его тогда надо было выводить?! smile
А насчет хранения в БД: смотри сам, andro_id, но потенциально один запрос(если результаты потом тихонько закешировать) погоды может и не сделать, зато редактировать список статусов можно будет через какую-нить админку, а в случае использования (только)массива придется переписывать РНР-файл...
PM MAIL   Вверх
BuShaRt
Дата 17.5.2007, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



teroni,
Извините, а почему наличие массива $color вы проверяете на наличие, а от ошибок пре возможной нообъявленой переменной $device_status решили откреститься?
PM MAIL   Вверх
teroni
Дата 17.5.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



Вопроса не понял. Вроде бы все, что надо по теме, я уже написал.
PM MAIL   Вверх
andro_id
Дата 17.5.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 17.4.2007
Где: Москва

Репутация: нет
Всего: 1



CyClon, спасибо. Всё работает.

skyboy
Цитата

А насчет хранения в БД: смотри сам, andro_id, но потенциально один запрос(если результаты потом тихонько закешировать) погоды может и не сделать, зато редактировать список статусов можно будет через какую-нить админку, а в случае использования (только)массива придется переписывать РНР-файл...


Было бы интереснее и правильнее сделать так, но думать, как это реализовать некогда. Надо чтобы уже работало. Пока собираю всё из кубиков, потом (по мере изучения PHP) буду обрабатывать напильником.

Спасибо всем.

Это сообщение отредактировал(а) andro_id - 19.5.2007, 18:16
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.