Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Веб Форумы » VBulletin 2.x.x » Как правильно написать код?
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Kirill_M
Участник
Средний рейтинг: 5 | Оценок: 1

Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус: Kirill_M в оф-лайне
Question Как правильно написать код? [сообщение #57359]

В таблице 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: определен

Old Post 25-12-2003 21:32
Нажмите сюда для просмотра профайла Kirill_M Отправить Персональное сообщение Kirill_M Найти сообщения от Kirill_M Добавить Kirill_M в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
[wish]master
Участник
Средний рейтинг: 4.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: [wish]master в оф-лайне
[сообщение #57365]

Массив тебе нафик не нужен! Конкретное значение из базы получить очень просто:

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: определен

Old Post 25-12-2003 23:39
Нажмите сюда для просмотра профайла [wish]master Отправить Персональное сообщение [wish]master Посетить домашнию страничку [wish]master! Найти сообщения от [wish]master Добавить [wish]master в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Krionix
Участник
Средний рейтинг: 3 | Оценок: 4
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания:
Публикаций: 109
Статус: Krionix в оф-лайне
[сообщение #57386]


PHP:


while ($stat=$DB_site->fetch_array($stats )) {
$statm[$stat[usergroupid]]=$stat[count];
}


$statm[6] - админ
$statm[3] - user и т.д.

Кстати интересно, что быстрее, сделать n-запросов или перебрать n-вариантов в цикле ?

__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 27-12-2003 10:26
Нажмите сюда для просмотра профайла Krionix Отправить Персональное сообщение Krionix Посетить домашнию страничку Krionix! Найти сообщения от Krionix Добавить Krionix в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
[wish]master
Участник
Средний рейтинг: 4.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: [wish]master в оф-лайне
[сообщение #57813]

n-запросов быстрее.
а ещё лучше индексы делать. да.

__________________
Однажды, только ты поверь,
Маятник качнется в правильную сторону...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 04-01-2004 23:46
Нажмите сюда для просмотра профайла [wish]master Отправить Персональное сообщение [wish]master Посетить домашнию страничку [wish]master! Найти сообщения от [wish]master Добавить [wish]master в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Kirill_M
Участник
Средний рейтинг: 5 | Оценок: 1

Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус: Kirill_M в оф-лайне
[сообщение #57830]

[wish]master

Странно. Обычные запросы к базе - это дисковые операции, которые получаются медленнее, чем выборка из массива, хранящегося в оперативной (и более быстрой) памяти.

__________________
Кирилл

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-01-2004 03:53
Нажмите сюда для просмотра профайла Kirill_M Отправить Персональное сообщение Kirill_M Найти сообщения от Kirill_M Добавить Kirill_M в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
[wish]master
Участник
Средний рейтинг: 4.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Dec 2003
Место проживания: Хабаровск
Публикаций: 57
Статус: [wish]master в оф-лайне
[сообщение #57834]

Ð_то теоретически. Практически почему-то не так. Сам на локалхосте проверял.

__________________
Однажды, только ты поверь,
Маятник качнется в правильную сторону...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-01-2004 04:51
Нажмите сюда для просмотра профайла [wish]master Отправить Персональное сообщение [wish]master Посетить домашнию страничку [wish]master! Найти сообщения от [wish]master Добавить [wish]master в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Kirill_M
Участник
Средний рейтинг: 5 | Оценок: 1

Зарегистрирован: Mar 2003
Место проживания: Москва
Публикаций: 70
Статус: Kirill_M в оф-лайне
[сообщение #57837]

[wish]master
А разница очень большая?

__________________
Кирилл

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-01-2004 05:28
Нажмите сюда для просмотра профайла Kirill_M Отправить Персональное сообщение Kirill_M Найти сообщения от Kirill_M Добавить Kirill_M в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #57859]

quote:
Обычные запросы к базе - это дисковые операции

если база файловая. Если же SQL все намного сложнее, да.

У SQL баз есть оптимизаторы запросов, так что выполняются они действительно быстро. И на больших объемах информации значительно выигрывают и у массивов =)) и у файловых баз.

Хотя если выборка осуществляется из таблиц не имеющих индекса и/или первичного ключа, то тогда возможно и обратный эффект.

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-01-2004 10:37
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 23:40.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.42223501 seconds (98.55% PHP - 1.45% MySQL) with 21 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.