![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день, помогите пожалуйста настроить вывод данных.
Предисловия:
В одной базе имеются четыре таблицы с одинаковой структурой. На данный момент выводится информация с каждой таблицы отдельно в график, но у каждого графика разные значения.
Графики показывают количество соединений по ип адресу. И получается не понятно какое полное количество запросов, так как графики показывают разные значения.
Условия:
Объединить все таблицы в одну.
Тоесть сделать график чтобы он считывал информацию с четырех таблиц.
Это код одного графика:
<?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 выводить график.
Как это сделать напишите пример пожалуйста.
Неактивен

Проще всего сделать представление
Неактивен