За последние 24 часа нас посетил 18251 программист и 1607 роботов. Сейчас ищут 1614 программистов ...

Построковая обработка данных из БД

Тема в разделе "Сделайте за меня", создана пользователем shultz1986, 29 мар 2016.

  1. shultz1986

    shultz1986 Новичок

    С нами с:
    29 мар 2016
    Сообщения:
    2
    Симпатии:
    0
    Добрый день. Прошу вашей помощи, тк в программировании особо не разбираюсь,профиль другой. Но возникла необходимость написать обработку БД. Есть 3 таблицы 1- база данных коммутаторов с ip адресами и портами исключениями (не должны опрашиваться), 2 - База мак адресов на портах коммутаторов, обновляется раз в 10 мин и отображается текущее состояние мак адресов на портах. 3- база данных мак адресов на портах коммутаторов, но уже с историей и временным штампом.
    Есть 3 таблицы mysql:
    table1
    `device_id` int(11) NOT NULL, - номер коммутатора в базе (уникальный)
    `numcom` int(11) DEFAULT NULL, - номер коммутатора в программе
    `ip` varchar(255) DEFAULT NULL, - ip коммутатора
    `port_exeption` varchar(255) DEFAULT NULL - порты исключения (порты для связи между коммутаторами)
    содержание следующее
    2 20 172.16.5.130 51, Gi0/1

    table2 - таблица мак адресов на портах коммутаторов (обновляется раз в 10 мин)
    `device_id` int(11) NOT NULL, - номер коммутатора в базе
    `port_id` int(11) NOT NULL, - номер порта в базе
    `port_label_short` varchar(255) DEFAULT NULL, - номер порта (как на коммутаторе)
    `mac_address` varchar(255) DEFAULT NULL, - мак адрес на порте
    содержание
    2 6 6 001485314A6B
    2 7 7 FCAA149560A0
    2 7 7 FCAB14956533
    9 413 Fa0/44 FCAA142947DF
    9 414 Fa0/45 001CC02AF20F
    9 415 Fa0/46 8C89A519FAFF
    11 520 Fa0/47 Null

    table3 - сводная таблица
    `device_id` int(11) NOT NULL, - номер коммутатора в базе
    `port_label_short` varchar(255) DEFAULT NULL, - номер порта (как на коммутаторе)
    `mac_address` varchar(255) DEFAULT NULL, - мак адрес на порте
    `Time` timestamp NULL DEFAULT CURRENT_TIMESTAMP - время добавления или обновления записи

    Требуется что-бы скрипт построчно обрабатывал таблицу2, при нахождении записи содержащей device_id и port_exeption из первой таблицы запись пропускалась, если совпадения нет, то запись добавляестя в таблицу 3. Если в таблице2 значение мак адреса null, запись так же, пропускается.

    Если в таблице 3 есть запись о данном мак адресе, то в строке обновляется время time, а в случае если мак перебрался на другой порт, то обновляется и порт.
    Если добавляется новый мак, на тот же порт, то он дописывается в дополнение к уже существующему, следующей строкой.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    В чём вопрос?
     
  3. shultz1986

    shultz1986 Новичок

    С нами с:
    29 мар 2016
    Сообщения:
    2
    Симпатии:
    0
    Вопрос, удобно ли это реализовать на PHP? И как примерно должен выглядеть цикл.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    много не известного, но сделать можно,
    лучше полистать книгу для новичков по PHP и MySQL, основ должно хватить для выполнении задачи
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Если оформишь как положено может я сделаю за тебя.