[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Цвет ячеек таблицы
Renden
Доброго времени суток, очередной вопрос)
Как можно реализовать в цикле вывода из базы пользователей, чтоб было так:
Допустим имееться цикл

while ($row = mysql_fetch_assoc($result))
{
$table .= "<tr>\n";

$table .= "<td bgcolor=$collor><a href=#>".$row['firstname']."</a></td>\n";
$table .= "<td bgcolor=$collor><a href=#>".$row['middlename']."</a></td>\n";
$table .= "<td bgcolor=$collor><a href=#>".$row['lastname']."</a></td>\n";

$table .= "</tr>\n";
}

И имеются в базе права пользователей:
1- Админ
2- Зам админа
3- Модератор
n- ...

И в зависимости от значения прав выставлять переменной $collor тот или иной цвет юзеру.



Спустя 14 минут, 9 секунд (6.09.2010 - 12:38) Vavilon79 написал(а):

switch ($row['имя поля прав пользователей'])
{
case "Админ":
$collor = "#D41F00"; //красный
break;
case "Зам админа":
$collor = "#00DF00"; //зеленый
break;
case "Модератор":
$collor = "#2A1FFF"; //синий
break;
case n.....
$collor = "#nnnnnn"; //цвет
break;
default:
$collor = "#2A0000"; //черный значение по у молчанию, если не не определен case
}

Спустя 2 минуты, 9 секунд (6.09.2010 - 12:40) linker написал(а):
Лучше цвет сразу в базе хранить, тогда не нужны будут ни кучи IF и SWITCH. Плюс появляется гибкость, при добавлении новой группы, не нужно будет править код.

Спустя 13 минут, 23 секунды (6.09.2010 - 12:54) Renden написал(а):
Vavilon79, благодарю, сейчас попробую.


linker,
А при хранении в базе делать выборку юзера и его цвета при помощи wthere чтоль?

Спустя 3 минуты, 54 секунды (6.09.2010 - 12:58) linker написал(а):
Не цвета юзверя. Права ты его выгребаешь? Значит выгребешь и цвет. Т.е. в в таблице с правами должно быть
1- Админ         | #770000
2- Зам админа | #007700
3- Модератор | #000077
n | #цвет
...

Спустя 4 минуты, 53 секунды (6.09.2010 - 13:03) Vavilon79 написал(а):
Цитата
linker,
А при хранении в базе делать выборку юзера и его цвета при помощи wthere чтоль?


не выборка делается не много подругому
выбрать поле с таблици где поле=значение
"SELECT имя поля прав пользователей, имя поля цвета FROM таблица где все это находится WHERE id='{номер строки для кого все это делается}'"

Спустя 8 минут, 41 секунда (6.09.2010 - 13:11) linker написал(а):
Для примера
SQL:
SELECT * FROM `users`
LEFT JOIN `rights` ON `right_id` = `user_right`
WHERE `user_id` = `10`
Вывод
...
$table .= '<td bgcolor="' . $row['right_color'] . '"><a href="#">' . $row['firstname'] . '</a></td>' . "\n";
...

Спустя 23 минуты, 22 секунды (6.09.2010 - 13:35) Renden написал(а):
linker,
Кажись я тупой sad.gif Чето я не фдупляю, в вашем запросе rights - это таблица с правами? (у меня она ввиде числового значения, 1, 2, 3 и тд)
right_id Это откуда береться?
user_right И это?
WHERE `user_id` = `10` - Зачем мне только определенный пользователь, если я хочу вывести всех пользователей списком, ввиде таблицы, в которой в зависимости от значения 1, 2, n правах будет соответсвовать цвет.

Спустя 10 минут, 31 секунда (6.09.2010 - 13:45) linker написал(а):
Renden
Это просто пример, который может легко быть изменен под свои задачи, надо только подумать немного.

Спустя 5 минут, 17 секунд (6.09.2010 - 13:50) inpost написал(а):
linker
А ты не думаешь, что ради каких-то трёх параметров человеку прийдется делать лишнее обращение к базе данных?
Лучше всего в самом начале определить пользователя и дать ему цвет в сессию. А потом из сессии и доставать сам цвет и подставлять в ячейки.

Спустя 13 минут, 11 секунд (6.09.2010 - 14:04) linker написал(а):
inpost
Почитай SQL-запрос, пример которого я привел выше, там все написано или ниже уже конкретно для ТС.
SELECT `users.*`, `rights.right_color` FROM `users`
LEFT JOIN `rights` ON `right_id` = `user_right`
Быстрый ответ:

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