Mam w bazie MySQLu odczyty z urządzeń sieciowych. Struktura bazy wygląda tak:
CREATE TABLE `sg_queues` ( `id` int NOT NULL, `devid` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `date` date NOT NULL, `error` int DEFAULT NULL, `value` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Pole value zawiera od kilkuset do tysiąca linijek typu:
Kod
ID2172;192.168.106.8/32;0/0;JAN_NOWAK_(10);typ/typ;false;14859234/652905818;116182/518319
ID2201;192.168.106.9/32;0/0;DABROWSKI_LUKASZ_(10);typ/typ;false;94048477/3741833695;698959/2845428
ID2076;192.168.106.10/32;0/0;KOWALSKI_GRZEGORZ_(10);typ/typ;false;35780712/827862853;365418/647407
ID2201;192.168.106.9/32;0/0;DABROWSKI_LUKASZ_(10);typ/typ;false;94048477/3741833695;698959/2845428
ID2076;192.168.106.10/32;0/0;KOWALSKI_GRZEGORZ_(10);typ/typ;false;35780712/827862853;365418/647407
Pierwsza wartość rozdzielona ; to jak widać ID klienta.
Innym poleceniem pobieram sobie z innej bazy danych listę klientów i wyszukuję w tym polu value [text] odpowiedniej linijki:
$sgq = "SELECT * FROM `sg_queues` WHERE date = '$data' AND devid = '$devid' ORDER BY id DESC LIMIT 1"; $sgres = $mysqli -> query($sgq); $queue = mysqli_fetch_array($sgres, MYSQLI_ASSOC); $cq = "SELECT * FROM `customers` WHERE status = '1'; $res = $mysqli -> query($cq); while($cust = mysqli_fetch_array($res, MYSQLI_ASSOC)) { $search_string = '/ID'.sprintf('%04d', $cust['id']).'/'; $found = preg_grep($search_string, $lines) var_dump($found); }
W odpowiedzi dostaję mniej więcej coś takiego:
Cytat
array(1) { [47]=> string(103) "ID2172;192.168.106.8/32;0/0;JAN_NOWAK_(10);typ/typ;false;14859234/652905818;116182/518319" }
array(1) { [1077]=> string(103) "ID2201;192.168.106.9/32;0/0;DABROWSKI_LUKASZ_(10);typ/typ;false;94048477/3741833695;698959/2845428" }
array(1) { [384]=> string(103) "ID2076;192.168.106.10/32;0/0;KOWALSKI_GRZEGORZ_(10);typ/typ;false;35780712/827862853;365418/647407" }
array(1) { [1077]=> string(103) "ID2201;192.168.106.9/32;0/0;DABROWSKI_LUKASZ_(10);typ/typ;false;94048477/3741833695;698959/2845428" }
array(1) { [384]=> string(103) "ID2076;192.168.106.10/32;0/0;KOWALSKI_GRZEGORZ_(10);typ/typ;false;35780712/827862853;365418/647407" }
Nie za bardzo tylko wiem, jak odnieść się potem w kodzie do tej wartości string(103) nie znając teo pogrubionego ID. Czy ktoś może pomóc?