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

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

BeatBox

Guest
никаких ошибок, просто в месте, где дложно показать результат - нет ничего.
тоесть написано:
Всего пользователей:
и все.
ФАК непомог, никаких ошибок нет вообще :(
 

Фанат

oncle terrible
Команда форума
фак не может не помочь.
если ты его внимательно читал, то там написано, что описанный там метод - ЕДИНСТВЕННЫЙ найти ошибку.
так что - давай, шуруй.
 

BeatBox

Guest
Вот смотрите.я сделал так:
PHP:
$numrowsusers = $db->sql_numrows($db->sql_query("SELECT user_id FROM ".$prefix."_users"));
$numrowsgames = $db->sql_numrows($db->sql_query("SELECT pid FROM ".$prefix."_games"));
$numrowsfiles1 = $db->sql_numrows($db->sql_query("SELECT lid FROM ".$prefix."_files"));
$numrowsfiles2 = $db->sql_numrows($db->sql_query("SELECT lid FROM ".$prefix."_demos"));
$numrowsfiles3 = $db->sql_numrows($db->sql_query("SELECT lid FROM ".$prefix."_fullversions"));
$numrowsfiles4 = $db->sql_numrows($db->sql_query("SELECT lid FROM ".$prefix."_patches"));
$totalfiles = $numrowsfiles1 + $numrowsfiles2 + $numrowsfiles3 + $numrowsfiles4;
сначала узнаем сколько всего пользователей.
потом сколько игр в базе
и потом сколько ВСЕГО файлов в базе.
Скажите, совсем ТУПО? Очень напрягут эти запросы БД? Они показываюься на всех страницах сайта.
 

Фанат

oncle terrible
Команда форума
да, тупо.
да, напрягут.

хотя если тебе только сделать, чтобы от тебя отбались, а от тебя усилий не требовалось, и тебя совершенно не волнует, как это работает - абы как, лишь бы показывало, то прокатит.
если же ты хочешь хоть каплю волочить в пхп, то тебе придется научиться искать ошибки в своем коде.
 

BeatBox

Guest
да даже незнаю, ошибки то никакие не показывает.
пс
сайт делать нужно качественно, делаю для себя.
 

Фанат

oncle terrible
Команда форума
BeatBox
ЧИТАЙ ВНИМАТЕЛЬНО!
ТРИ РАЗА ПРОЧТИ
ПЯТЬ
если с одного не доходить.
кроме варианта сидеть и сложив ручки ждать, пока тебе пхп покажет какую-то ошибку, там еще есть.
ПРОВЕРЯТЬ
ПОСТРОЧНО
что делает твоя программа.

и за тебя это не может сделать никто на свете.
 

BeatBox

Guest
Наконец-то! вот код рабочий
PHP:
$resultx1 = $db->sql_query("SELECT COUNT(*) as users FROM nuke_users");
$rowfx2 = $db->sql_fetchrow($resultx1);
$numrowsusers = $rowfx2['users'];
заменил в первой строке sql_fetchrow на sql_query.
теперь вопросик - ТАКИЕ 6 запросв меньше нагрузят БД, чем предыдущий вариант?
 

Фанат

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

BeatBox

Guest
:eek: какой мне смысл врать? я написал как сказано в факе - невывело вообще никаких ошибок, ни единой строчки.

-~{}~ 09.03.05 23:05:

Обьясните, пожалуйста - 6 запросов в новом виде меньше нагрузят БД, чем предыдущий вариант?
 

BeatBox

Guest
Фанат
Простите. но я непонял о каком ответе идет речь. Немогли бы вы сказать?
 

BeatBox

Guest
Ну это несерьёзно! Ответьте пожалуйста. я топик могу сто раз перечитать но НОВОГО ничего неывижу.
 

SelenIT

IT-лунатик :)
BeatBox
почувствуй разницу между следующими ситуациями:
1) вытащить из таблицы ВСЕ, что в ней есть, заставить MySQL-сервер переслать это все MySQL-клиенту и только потом посчитать строки, которые клиент получил от сервера - при этом сами эти строки больше ни для чего не нужны;
2) дать команду MySQL-серверу посчитать строки прямо в базе (для таблиц самого распространенного типа MyISAM при этом вообще не придется ворошить таблицу - общее число записей берется из служебной информации о ней) и передать клиенту только это число.

В каком случае нагрузка больше?
 

BeatBox

Guest
во втором :) Тоесть тут:

PHP:
$resultx1 = $db->sql_query("SELECT COUNT(*) as users FROM nuke_users"); 
$rowfx2 = $db->sql_fetchrow($resultx1); 
$numrowsusers = $rowfx2['users'];
Спасибо!
 

SelenIT

IT-лунатик :)
Надеюсь, ты имел в виду, что тут нагрузка меньше, а скорость, соответственно, быстрее :)
 
Сверху