узнать кол-во полей в разных таблицах, составив запрос методом обьеденения

  • Автор темы BeatBox
  • Дата начала

BeatBox

Guest
узнать кол-во полей в разных таблицах, составив запрос методом обьеденения

Здравствуйте, у меня следующая задача:
нужно вывести на экран в разные части небольшую статистику
"всего зарегистрированных"
"всего статей"
"всего файлов".
Делаю это таким образом:
PHP:
$resultre = $db->sql_query("SELECT COUNT(a.username) as users, COUNT(b.pid) as games FROM nuke_users as a, nuke_games as b");
$rowre = $db->sql_fetchrow($resultre);
$test = $rowre['users'];
$games = $rowre['games'];
и хотя на самом деле всего пользователей 3, а статей (табл _games) 7 - мне в обоих переменных выводит 21. Где я ошибаюсь?
 

BRat

o_0
хм..ты даже таблицы не связал..еще бы что-то полезное выдалось. два запроса делай, одним не получится
 

BeatBox

Guest
а есть ли какой-нибудь способ одним сделать? дело в том что всего мне таких нужно 3. Это три лишних запроса на ровном месте. Итого местами на сайте буду странички с 35 (!!) обращениями к БД. Не много? Или нормально?
 

BRat

o_0
SELECT COUNT(*) as users FROM nuke_users
не думаю что такие запросы выполняются особенно долго)
 

BeatBox

Guest
Спасибо всем!

-~{}~ 09.03.05 05:56:

если у меня таких запросов уже 8 получаеться - не страшно?

-~{}~ 09.03.05 05:58:

вот таких:
$numrowsgames = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_games"));
и ещё 7 таких. БД не оч нагружаеться?
 

SelenIT

IT-лунатик :)
От вот таких - очень.
Какой смысл выбирать все строки, когда задача их только посчитать? Тем более правильный вариант уже предложен...
 

BeatBox

Guest
SelenIT
У меня неполучаеться никак по другому :(
 

SelenIT

IT-лунатик :)
BeatBox
Получается. Возьми запрос из второго поста BRatа, и обработай, как в своем первом посте.
 

Фанат

oncle terrible
Команда форума
а мне интересно - откуда там 35-то взялось.
вроде бы, в начале было написано всего о трех?
 

crocodile2u

http://vbolshov.org.ru
Суть в данном случае не в том, чтобы помочь с составлением данных конкретных нескольких запросов. BeatBox'у нужно немного разобраться с синтаксисом SQL, в частности, в вопросах, касающихся JOIN. После этого такие треды перестанут возникать.

Имхо, хороший хелп/мануал по SQL имеется в проге под названием pgadmin - конечно, для postgres, но общие вопросы, связанные с SQL, там освещены очень хорошо.
 

BeatBox

Guest
IntenT
MySql
пс
что-то никак немогу понять как же сделать :(
 

Фанат

oncle terrible
Команда форума
сделать столько запросов, сколько у тебя таблиц.
До тебя все еще не дошло?
 

BeatBox

Guest
вот как сделал:
PHP:
$numrowsfiles1 = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_files"));
но SelenIT же сказал что это базу сильно нагружает :(
а как сделать как говорит
BRat немогу - запрос дела но непойму как мне вывести результут. вот пример моей попытки:
PHP:
$resultx1 = $db->sql_fetchrow("SELECT COUNT(*) as users FROM nuke_users");
$rowfx2 = $db->sql_fetchrow($resultx1);
$numrowsusers = $rowfx2['users'];
 
Сверху