Биллинговая система Nodeny
25 Апреля 2024, 06:01:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Баги N+  (Прочитано 5247 раз)
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« : 21 Июня 2018, 13:47:37 »

Не знаю куди писати, тому створив нову тему.

Баг в точках топології. Якщо робиш фільтр по назві, що нам пропонується зліва в стовбчику і якщо список точок більше ніж на одну сторінку - то не можливо вибрати 2 та N сторінку, викидує в загальний список.

Прошу пофіксити )) дякую
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #1 : 21 Июня 2018, 15:35:39 »

Баг №2

При використанні фільтра, наприклад Група+Місто - в верхньому кутку видає не вірну сумму клієнтів. І якщо листати по сторінка, кожна сторінка не повністю заповнена клієнтами. Тобто на першій 20кл, на друій може буит 5, на третій 14. Сума, гадаю, тому й не вірно рахується..  Прошу перевірити.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 21 Июня 2018, 15:37:10 »

Баг №2

При використанні фільтра, наприклад Група+Місто - в верхньому кутку видає не вірну сумму клієнтів. І якщо листати по сторінка, кожна сторінка не повністю заповнена клієнтами. Тобто на першій 20кл, на друій може буит 5, на третій 14. Сума, гадаю, тому й не вірно рахується..  Прошу перевірити.
покажи основной sql-запрос из дебага
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #3 : 21 Июня 2018, 15:39:19 »

Краще так
h t tps://pastebin.com/5N4UdDaP
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #4 : 21 Июня 2018, 15:42:02 »

Если в консоли mysql выполнить этот sql, будут записи с одинаковыми uid? Только скопируй этот sql  при выборе 2й страницы
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #5 : 21 Июня 2018, 15:59:11 »

Який саме запит? ))
а це не може бути причиною?
SELECT * FROM data0 WHERE uid IN(30809,30809,30809,30808,30808,30808,30808,30808,30808,30808,30808,30808,30808,30807,30807,30807,30807,30807,30807,30807)
Строк: 30. Время выполнения sql: 0.0010 сек
тут деякі уіди по 4 і більше разів повторюються.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #6 : 21 Июня 2018, 16:04:50 »

Код:
SELECT SQL_CALC_FOUND_ROWS u.* FROM fullusers u LEFT JOIN data0 d ON u.id=d.uid
WHERE u.grp=57 AND d._adr_city='Іванків ПС' ORDER BY u.grp, u.id DESC LIMIT 20, 40;
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #7 : 21 Июня 2018, 16:08:14 »

mysql> SELECT id,uid,_adr_city FROM data0 WHERE uid=30809;
+-------+-------+---------------------+
| id    | uid   | _adr_city           |
+-------+-------+---------------------+
| 33870 | 30809 | Іванків ПС          |
| 33938 | 30809 | Іванків ПС          |
| 34006 | 30809 | Іванків ПС          |
| 34083 | 30809 | Іванків ПС          |
| 34151 | 30809 | Іванків ПС          |
| 34219 | 30809 | Іванків ПС          |
| 34287 | 30809 | Іванків ПС          |
| 34355 | 30809 | Іванків ПС          |
| 34423 | 30809 | Іванків ПС          |
| 34491 | 30809 | Іванків ПС          |
+-------+-------+---------------------+
10 rows in set (0.00 sec)

Я так розумію, це не є гуд. Схоже це зявилося після переносу csv.pl. І кількість повторів - дорівнює кількості разів, скільки я запускав цей скрипт для клієнта
Це походу тре придумати як убрати дублі, або костильнути LIMIT, або і те і інше
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #8 : 21 Июня 2018, 16:24:48 »

Хоча скрипт би не мав це робити в останній версії, може це було зі старою версією?
        my $rows = Db->do("INSERT INTO data0 SET $sql ON DUPLICATE KEY UPDATE $sql", @sql_param, @sql_param);
    $rows < 1 && die 'sql error';
    $rows = Db->do("UPDATE data0 SET $sql WHERE uid=?", @sql_param,$uid);
    $rows < 1 && die 'sql error';
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #9 : 21 Июня 2018, 16:29:01 »

У тебя некорректная таблица data0 - в ней нет уникальности на поле uid. Убрать дубли проще всего создав корректную таблицу с другим именем. Сделать INSERT ... FROM (SELECT .... GROUP BY uid), затем дропнуть  data0 и переименовать новую таблицу
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #10 : 21 Июня 2018, 16:33:43 »

Якщо я вірно зрозумів то потрібно робити так
CREATE TABLE `data0` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `uid` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE (`uid`),
  KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Тоді мабуть варто поправити це в інсталі?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #11 : 23 Июня 2018, 14:46:13 »

Не знаю куди писати, тому створив нову тему.

Баг в точках топології. Якщо робиш фільтр по назві, що нам пропонується зліва в стовбчику і якщо список точок більше ніж на одну сторінку - то не можливо вибрати 2 та N сторінку, викидує в загальний список.

Прошу пофіксити )) дякую
Пофиксил. Скачай заново модуль карт (не Яндекс, а общий модуль)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #12 : 23 Июня 2018, 14:50:23 »

Якщо я вірно зрозумів то потрібно робити так
CREATE TABLE `data0` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `uid` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE (`uid`),
  KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Тоді мабуть варто поправити це в інсталі?
эта уникальность нужна только когда данные переносятся со старых биллингов. N+ не вставляет записи в data0, а всегда только апдейтит их. Ну кроме ситуации когда создается учетная запись

В скрипте переноса данных с n50:

Код:
ALTER TABLE `data0` ADD UNIQUE `temp` (`uid`);

перенос данных

ALTER TABLE `data0` DROP INDEX `temp`;
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #13 : 24 Июня 2018, 17:55:00 »

Не знаю куди писати, тому створив нову тему.

Баг в точках топології. Якщо робиш фільтр по назві, що нам пропонується зліва в стовбчику і якщо список точок більше ніж на одну сторінку - то не можливо вибрати 2 та N сторінку, викидує в загальний список.

Прошу пофіксити )) дякую
Пофиксил. Скачай заново модуль карт (не Яндекс, а общий модуль)

Дякую, працює
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #14 : 26 Июня 2018, 02:39:31 »

У тебя некорректная таблица data0 - в ней нет уникальности на поле uid. Убрать дубли проще всего создав корректную таблицу с другим именем. Сделать INSERT ... FROM (SELECT .... GROUP BY uid), затем дропнуть  data0 и переименовать новую таблицу
Та ж фігня, коли роблю фільтр по "Ip в історії авторизацiй". Але тут трішки інша історія, мені здається
mysql> SELECT DISTINCT uid, ip FROM auth_log WHERE uid=30764;
+-------+-----------+
| uid   | ip        |
+-------+-----------+
| 30764 | 168388910 |
| 30764 | 168390465 |
| 30764 | 168389712 |
| 30764 | 168394356 |
| 30764 | 168388471 |
| 30764 | 168390706 |
| 30764 | 168394014 |
| 30764 | 168394360 |
| 30764 | 168393843 |
| 30764 | 168395151 |
| 30764 | 168388972 |
| 30764 | 168364298 |
| 30764 | 168388620 |
| 30764 | 168389969 |
| 30764 | 168391443 |
| 30764 | 168388985 |
| 30764 | 168390336 |
| 30764 | 168395049 |
| 30764 | 168392857 |
| 30764 | 168365647 |
| 30764 | 168392824 |
| 30764 | 168391885 |
| 30764 | 168363093 |
| 30764 | 168393193 |
+-------+-----------+
24 rows in set (0.00 sec)
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!