Как можно реализовать в цикле вывода из базы пользователей, чтоб было так:
Допустим имееться цикл
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 чтоль?
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:
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,
Кажись я тупой Чето я не фдупляю, в вашем запросе rights - это таблица с правами? (у меня она ввиде числового значения, 1, 2, 3 и тд)
right_id Это откуда береться?
user_right И это?
WHERE `user_id` = `10` - Зачем мне только определенный пользователь, если я хочу вывести всех пользователей списком, ввиде таблицы, в которой в зависимости от значения 1, 2, n правах будет соответсвовать цвет.
Кажись я тупой Чето я не фдупляю, в вашем запросе 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-запрос, пример которого я привел выше, там все написано или ниже уже конкретно для ТС.
Почитай SQL-запрос, пример которого я привел выше, там все написано или ниже уже конкретно для ТС.
SELECT `users.*`, `rights.right_color` FROM `users`
LEFT JOIN `rights` ON `right_id` = `user_right`