Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день, помогите пожалуйста настроить вывод данных.
Предисловия:
В одной базе имеются четыре таблицы с одинаковой структурой. На данный момент выводится информация с каждой таблицы отдельно в график, но у каждого графика разные значения.
Графики показывают количество соединений по ип адресу. И получается не понятно какое полное количество запросов, так как графики показывают разные значения.
Условия:
Объединить все таблицы в одну.
Тоесть сделать график чтобы он считывал информацию с четырех таблиц.
Это код одного графика:
<?php for ($x=0; $x<=6; $x++) { $m = (date("m", strtotime("-".$x." day"))); $m2 = (date("Y", strtotime("-".$x." day"))); $m3 = (date("d", strtotime("-".$x." day"))); $res = mysql_query("SELECT COUNT(DISTINCT (`ip`)) AS `unique` FROM MS01 WHERE timeyear = $m2 and timemonth = $m and timeday = $m3 and type = 'cs'") or die(mysql_error()); $row = mysql_fetch_row($res); $count_uq161[] = $row[0]; } echo "data: ["; $uq_reverse = array_reverse($count_uq161); echo implode(", ",$uq_reverse); echo "]"; ?>
Как видим он считывает информацию с одной таблицы.
Помогите пожалуйста прописать код, чтобы считывал с четырех таблиц.
Таблицы называются: MS01, MS02, MS03, MS04 Структура одинаковая.
Неактивен
Неактивен
deadka написал:
(SELECT COUNT(DISTINCT (`ip`)) AS `unique` FROM MS01 WHERE timeyear = $m2 and timemonth = $m and timeday = $m3 and type = 'cs'" )
UNION
(SELECT COUNT(DISTINCT (`ip`)) AS `unique` FROM MS02 WHERE timeyear = $m2 and timemonth = $m and timeday = $m3 and type = 'cs'" )
UNION
(SELECT COUNT(DISTINCT (`ip`)) AS `unique` FROM MS03 WHERE timeyear = $m2 and timemonth = $m and timeday = $m3 and type = 'cs'" )
UNION
(SELECT COUNT(DISTINCT (`ip`)) AS `unique` FROM MS04 WHERE timeyear = $m2 and timemonth = $m and timeday = $m3 and type = 'cs'" )
График не отображает вообше.
Неактивен
Что находится в Ваших таблицах я не знаю, да и
телепатия никогда не была моей сильной стороной ( с )
Отделим мух от котлет - сперва покажите, что выбирается в запросе (и Вашем и моем), есть ли данные вообще в результирующей выборке.
Дальше, когда с данными будет порядок - уже разбирайтесь с графиком.
Неактивен
Вот как выглядят графики:
График 1
График 2
Файлы графика:
Файлы
Структура таблицы:
Файл
CS
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `mslog` -- ---------------------------- DROP TABLE IF EXISTS `mslog`; CREATE TABLE `mslog` ( `timeyear` varchar(255) default NULL, `timemonth` varchar(255) default NULL, `timeday` varchar(255) default NULL, `timehour` varchar(255) default NULL, `timeminute` varchar(255) default NULL, `timesecond` varchar(255) default NULL, `ip` varchar(255) default NULL, `port` varchar(255) default NULL, `type` varchar(255) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of mslog -- ---------------------------- INSERT INTO `mslog` VALUES ('2013', '01', '17', '11', '04', '30', '62.117.102.157', '51299', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '11', '04', '30', '62.117.102.157', '51299', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '11', '04', '29', '62.117.102.157', '51299', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '11', '04', '29', '62.117.102.157', '51299', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '06', '31', '95.128.243.86', '60362', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '06', '31', '95.128.243.86', '60362', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '06', '35', '95.128.243.86', '60362', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '33', '188.127.123.42', '60296', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '33', '188.127.123.42', '60296', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '44', '95.192.68.200', '17119', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '44', '95.192.68.200', '17119', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '44', '95.192.68.200', '17119', 'cs'); INSERT INTO `mslog` VALUES ('2013', '01', '17', '16', '07', '44', '95.192.68.200', '17119', 'cs');
Только тыблица называется не "mslog" а "MS01", "MS02", "MS03", "MS04"
Так вот мне нужно чтобы был график не каждой таблицы, а чтобы на графике была одна полоска но чтобы он считывал данные со всех четырех таблиц.
Отредактированно tiger30 (04.11.2014 12:22:48)
Неактивен
Как я уже писал в предыдущем посте - оставим пока графики, разберемся с данными. Результат моего запроса с точки зрения данных возвращает корректный набор данных или нет? Если нет, то приведите вывод моего запроса и пример того набора, который хотелось бы получить.
Неактивен
deadka написал:
Как я уже писал в предыдущем посте - оставим пока графики, разберемся с данными. Результат моего запроса с точки зрения данных возвращает корректный набор данных или нет? Если нет, то приведите вывод моего запроса и пример того набора, который хотелось бы получить.
Я извиняюсь но я нуб в mysql.
Я вписывал как вы говорили, у меня было в место графиков белый экран.
Я вам дал все данные на чем построены графики.
Что мне прописать в index.php, чтобы брались данные с четырех таблиц.
Графике должна быть одна полоска но чтобы считывались данные с четырех таблиц сразу.
Я не знаю как еще объяснить, вроде все четка описал.
Неактивен
UNION = Не работает перепробывал все.
Другие способы тоже не работаю, возможно из за ява скрипта.
Возникла другая идея, объединить все таблицы в одну.
Тоесть в таблицу MS05 из таблиц MS01, MS02, MS03, MS04, а потом с MS05 выводить график.
Как это сделать напишите пример пожалуйста.
Неактивен
Проще всего сделать представление
Неактивен