 |
 |
Форум сетевых администраторов » Веб Форумы » VBulletin 2.x.x » Как правильно написать код?
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник


Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус:  |
В таблице user по ключу usergroupid считаем количество пользователей:
PHP:
$statadmins = $DB_site->query_first('SELECT COUNT(userid) AS users FROM user WHERE usergroupid=6');
$statadmin = $statadmins['users'];
$statmoderators = $DB_site->query_first('SELECT COUNT(userid) AS users FROM user WHERE usergroupid=7');
$statmoderator = $statmoderators['users'];
Так как групп пользователей довольно много, то данный метод подсчёта выглядит некузяво. Хочется взять из таблицы user данные в массив и уже в нём посчитать количество пользователей по каждой группе.
PHP:
$stats = $DB_site->query("
SELECT COUNT(*) AS count, usergroupid
FROM user
GROUP BY usergroupid
ORDER BY count DESC
");
echo "<table>\n";
while ($usergroup=$DB_site->fetch_array($stats)) {
echo "<tr>\n<td>$usergroup[usergroupid]</td>\n<td>$usergroup[count]</td>\n<td></td></tr>\n";
}
echo "</table>\n";
Вопрос: как должен выглядеть код выборки из массива, чтобы можно было определить переменные
$statadmin=тра-та-та;
$statmoderator=тра-та-та;
__________________
Кирилл
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
25-12-2003 21:32 |
|
|


Участник
|
| Массив тебе нафик не нужен! Конкретное значение... |
[сооб. #57365]
25-12-2003 23:39 |
|
Участник


Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: ![[wish]master в оф-лайне](images/offline.gif) |
Массив тебе нафик не нужен! Конкретное значение из базы получить очень просто:
PHP:
// Пишем функцию, чтобы использовать ее в дальнейшем
function sql_val ($value1, $value2, $value3) {
return @mysql_result (mysql_query ($value1), $value2, $value3);
}
// Значение из базы получаем примерно так
$my_val = sql_val ("SELECT * FROM my_table", 0, "bla-bla");
__________________
Однажды, только ты поверь,
Маятник качнется в правильную сторону...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
25-12-2003 23:39 |
|
|
Участник
|
PHP:
while ($stat=$DB_site->fetch_array($stats )) {
$statm[$stat[usergroupid]]=$stat[count];
}
$statm[6]... |
[сооб. #57386]
27-12-2003 10:26 |
|
Участник

Зарегистрирован: Apr 2003
Место проживания:
Публикаций: 109
Статус:  |
PHP:
while ($stat=$DB_site->fetch_array($stats )) {
$statm[$stat[usergroupid]]=$stat[count];
}
$statm[6] - админ
$statm[3] - user и т.д.
Кстати интересно, что быстрее, сделать n-запросов или перебрать n-вариантов в цикле ?
__________________
**censored**
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
27-12-2003 10:26 |
|
|
Участник
|
n-запросов быстрее.
а ещё лучше индексы делать.... |
[сооб. #57813]
04-01-2004 23:46 |
|
Участник


Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: ![[wish]master в оф-лайне](images/offline.gif) |
n-запросов быстрее.
а ещё лучше индексы делать. да.
__________________
Однажды, только ты поверь,
Маятник качнется в правильную сторону...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
04-01-2004 23:46 |
|
|
Участник
|
[wish]master
Странно. Обычные запросы к базе... |
[сооб. #57830]
05-01-2004 03:53 |
|
Участник


Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус:  |
[wish]master
Странно. Обычные запросы к базе - это дисковые операции, которые получаются медленнее, чем выборка из массива, хранящегося в оперативной (и более быстрой) памяти.
__________________
Кирилл
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
05-01-2004 03:53 |
|
|
Участник
|
| Ð_то теоретически. Практически почему-то не... |
[сооб. #57834]
05-01-2004 04:51 |
|
Участник


Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: ![[wish]master в оф-лайне](images/offline.gif) |
Ð_то теоретически. Практически почему-то не так. Сам на локалхосте проверял.
__________________
Однажды, только ты поверь,
Маятник качнется в правильную сторону...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
05-01-2004 04:51 |
|
|
Участник
|
[wish]master
А разница очень большая? |
[сооб. #57837]
05-01-2004 05:28 |
|
|
-= n0b0dy =-
|
quote: Обычные запросы к базе - это дисковые операции
если... |
[сооб. #57859]
05-01-2004 10:37 |
|
-= n0b0dy =-

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус:  |
quote: Обычные запросы к базе - это дисковые операции
если база файловая. Если же SQL все намного сложнее, да.
У SQL баз есть оптимизаторы запросов, так что выполняются они действительно быстро. И на больших объемах информации значительно выигрывают и у массивов =)) и у файловых баз.
Хотя если выборка осуществляется из таблиц не имеющих индекса и/или первичного ключа, то тогда возможно и обратный эффект.
__________________
No pity, no mercy, no regret.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
05-01-2004 10:37 |
|
|
|
Формат времени GMT. Текущее время 21:57.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.41797400 seconds (98.64% PHP - 1.36% MySQL) with 26 queries.
|
 |