Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Power Counter: вывод количества посещений с определеных диапазонов IP-адресов
 
 автор: TrEK   (22.05.2011 в 01:17)   письмо автору
 
 

еще один вопрос относительно вывода счетчика посещений...

как на страничку вывести общее количество уникальных адресов, но только из диапазона 192.168.0.0/16 и 194.187.228.0/24 ?

  Ответить  
 
 автор: cheops   (22.05.2011 в 10:49)   письмо автору
 
   для: TrEK   (22.05.2011 в 01:17)
 

Нужно больше подробностей, за какой период хотите вывести эту информацию (просто скорее всего придется увеличивать время хранения не сжатой информации, чтобы извлекать её от туда)?

  Ответить  
 
 автор: TrEK   (22.05.2011 в 16:37)   письмо автору
 
   для: cheops   (22.05.2011 в 10:49)
 

хм... ну хотелось бы вывод за все время..

так как за вчера , неделю , месяц я буду брать без фильтрации... из dmn/system_powercounter/hits.php

А вот общее число надо отфильтровать только по двум диапазонам адресов

  Ответить  
 
 автор: cheops   (22.05.2011 в 17:00)   письмо автору
 
   для: TrEK   (22.05.2011 в 16:37)
 

Так, правильно ли я понимаю, что таблица powercounter_ip_unique у вас живет и здравствует? Т.е. при решении задачи мы можем полагаться на режим IP_UNIQUE_USE, когда у нас все уникальные хосты ложаться в отдельную таблицу?

  Ответить  
 
 автор: TrEK   (22.05.2011 в 22:06)   письмо автору
 
   для: cheops   (22.05.2011 в 17:00)
 

Да, уникальные айпи у меня включены.

  Ответить  
 
 автор: cheops   (22.05.2011 в 22:13)   письмо автору
 
   для: TrEK   (22.05.2011 в 22:06)
 

Тогда вам должен подойти следующий SQL-запрос
SELECT
  SUM(total)
FROM
  powercounter_ip_unique
WHERE
 (ip >= INET_ATON('192.168.0.0') AND ip <= INET_ATON('192.168.0.16')) OR
 (ip >= INET_ATON('194.187.228.0) AND ip <= INET_ATON('194.187.228.24))

  Ответить  
 
 автор: TrEK   (23.05.2011 в 00:38)   письмо автору
 
   для: cheops   (22.05.2011 в 22:13)
 

<?php
$sql1
="SELECT SUM(total) FROM `powercounter_ip_unique`    WHERE     (ip >= INET_ATON('192.168.0.0') AND ip <= INET_ATON('192.168.0.16')) OR
      (ip >= INET_ATON('194.187.228.0) AND ip <= INET_ATON('194.187.228.24))"
;
      
$result2= @mysql_query($sql1);
  echo 
$result2;
?>


что-то не выводит.. что не так?

  Ответить  
 
 автор: cheops   (23.05.2011 в 07:42)   письмо автору
 
   для: TrEK   (23.05.2011 в 00:38)
 

mysql_query() возвращает лишь дескриптор, чтобы получить результат нужно дополнительно использовать mysql_result()
<?php
  
...
  
$result2= @mysql_query($sql1);
  if(!
$result2) exit("Ошибка выполнения запроса - ".mysql_error());
  echo 
mysql_result($result20);
  ...
?>

  Ответить  
 
 автор: TrEK   (23.05.2011 в 20:17)   письмо автору
 
   для: cheops   (23.05.2011 в 07:42)
 

Ошибка выполнения запроса - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '194.187.228.254))' at line 1


<?php
$sql1
="SELECT SUM(total) FROM `powercounter_ip_unique`    WHERE     (ip >= INET_ATON('192.168.0.0') AND ip <= INET_ATON('192.168.0.16')) OR    (ip >= INET_ATON('193.187.228.0) AND ip <= INET_ATON('193.187.228.254))";
$result2= @mysql_query($sql1);
  if(!
$result2) exit("Ошибка выполнения запроса - ".mysql_error());
    echo 
mysql_result($result20);       
?>
       

  Ответить  
 
 автор: cheops   (23.05.2011 в 20:19)   письмо автору
 
   для: TrEK   (23.05.2011 в 20:17)
 

Кавычки потерялись, исправьте запрос следующим образом
SELECT 
  SUM(total) 
FROM 
  powercounter_ip_unique 
WHERE 
 (ip >= INET_ATON('192.168.0.0') AND ip <= INET_ATON('192.168.0.16')) OR 
 (ip >= INET_ATON('194.187.228.0') AND ip <= INET_ATON('194.187.228.24'))

  Ответить  
 
 автор: TrEK   (23.05.2011 в 20:47)   письмо автору
 
   для: cheops   (23.05.2011 в 20:19)
 

Да что ж за невезение.. ок:)

219026

Слишком большое число получилось... должно быть в раене 500
этот запрос должен подсчитывать общее количество обращений в страничке... или колчество самих айпи?

  Ответить  
 
 автор: cheops   (23.05.2011 в 20:53)   письмо автору
 
   для: TrEK   (23.05.2011 в 20:47)
 

А дамп таблицы powercounter_ip_unique большой? Нельзя его прикрепить, чтобы можно было воспроизвести ситуацию?

  Ответить  
 
 автор: TrEK   (23.05.2011 в 21:06)   письмо автору
 
   для: cheops   (23.05.2011 в 20:53)
 

55 кб.
Простите, а куда прикрепить?.. не совсем понял

  Ответить  
 
 автор: cheops   (23.05.2011 в 21:23)   письмо автору
 
   для: TrEK   (23.05.2011 в 21:06)
 

Когда сообщение пишите внизу перед кнопкой "Отправить", есть поле "Прикрепить" и кнопка "Обзор" - они позволяют прикрепить файл к сообщению.

  Ответить  
 
 автор: TrEK   (23.05.2011 в 22:11)   письмо автору
55.7 Кб
 
   для: cheops   (23.05.2011 в 21:23)
 

Понял, вот ...
прикрепил

  Ответить  
 
 автор: cheops   (23.05.2011 в 22:57)   письмо автору
 
   для: TrEK   (23.05.2011 в 22:11)
 

Хм... я вообще не могу найти записей с IP-адресами в этом диапазоне... может у меня таблица не полная, посмотрите сколько строчек в вашей таблице (1221)?

  Ответить  
 
 автор: TrEK   (23.05.2011 в 23:33)   письмо автору
 
   для: cheops   (23.05.2011 в 22:57)
 

1263 строки...
Ну я вижу что айпи-адреса здесь в виде "1602701454"

  Ответить  
 
 автор: cheops   (23.05.2011 в 23:41)   письмо автору
 
   для: TrEK   (23.05.2011 в 23:33)
 

Преобразовать IP-адреса не сложно
SELECT INET_ATON('192.168.0.0'), INET_ATON('192.168.0.16'), INET_ATON('194.187.228.0'), INET_ATON('194.187.228.24')

PS Не могли бы вы довыложить дамп, начиная с 1221 строки?

  Ответить  
 
 автор: TrEK   (24.05.2011 в 00:13)   письмо автору
 
   для: cheops   (23.05.2011 в 23:41)
 

<?php

(118016027117661'2011-05-20 17:15:37'),
(
118116027112345'2011-05-20 17:23:30'),
(
1182160271823012'2011-05-20 17:32:44'),
(
1183153487218214'2011-05-20 17:54:18'),
(
1184160269981213'2011-05-20 17:58:19'),
(
118516027253321'2011-05-20 18:08:27'),
(
1186160270139320'2011-05-20 22:47:22'),
(
118716027172001'2011-05-20 21:05:43'),
(
118816027172031'2011-05-20 23:29:32'),
(
118916027064551'2011-05-21 00:24:02'),
(
119016027207961'2011-05-21 00:39:05'),
(
119116026885501'2011-05-21 01:18:23'),
(
119216026866242'2011-05-21 08:38:19'),
(
119316027163802'2011-05-21 10:02:32'),
(
119416026881971'2011-05-21 12:47:35'),
(
119516027019931'2011-05-21 17:04:35'),
(
119616027391201'2011-05-21 19:32:32'),
(
1197160272015920'2011-05-21 22:02:45'),
(
119816027243921'2011-05-21 20:02:18'),
(
119916027027718'2011-05-21 20:31:25'),
(
1200153488066626'2011-05-21 22:11:35'),
(
120116027014542'2011-05-21 23:04:53'),
(
120216026953651'2011-05-21 23:21:10'),
(
120316026993825'2011-05-22 08:06:14'),
(
1204160268601725'2011-05-22 20:44:24'),
(
120516027110143'2011-05-22 09:44:59'),
(
1206160269578518'2011-05-22 15:38:34'),
(
120716027355392'2011-05-22 15:57:15'),
(
120816027170873'2011-05-22 16:01:09'),
(
1209160269008627'2011-05-22 16:42:06'),
(
121016027380331'2011-05-22 19:08:16'),
(
121116027039323'2011-05-22 20:21:13'),
(
121216026971211'2011-05-22 21:12:40'),
(
121316027304457'2011-05-22 23:08:53'),
(
121416027075601'2011-05-23 08:53:52'),
(
121516026891391'2011-05-23 09:19:20'),
(
121615348778306'2011-05-23 11:49:28'),
(
121716027100525'2011-05-23 13:29:15'),
(
121816027036057'2011-05-23 15:42:20'),
(
1219160271871639'2011-05-23 18:03:38'),
(
122016026964247'2011-05-23 18:10:14'),
(
122116026873921'2011-05-23 18:25:22');

?>


Или Вы как раз и имелли ввиду 1221?
я назвал строки по их нумерации в текстовом редакторе.

Здесь число 1221, - id_position, в строке 1263

  Ответить  
 
 автор: TrEK   (26.05.2011 в 01:45)   письмо автору
 
   для: cheops   (23.05.2011 в 22:57)
 

ХМ... простите, айпи указаного мной диапазона нету в моем использовании...
То что в дампе верно, и тот же диапазон я подставляю в выполняемую команду.
Просто чтоб лишний раз адресами не светить.. изменил при посте сообщения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования