Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Multitidimensional array
KR2615
post 28.09.2022, 09:00:05
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

Ostrzeżenie: (0%)
-----


Hej
Mam w bazie MySQLu odczyty z urządzeń sieciowych. Struktura bazy wygląda tak:
  1. CREATE TABLE `sg_queues` (
  2. `id` int NOT NULL,
  3. `devid` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  4. `date` date NOT NULL,
  5. `error` int DEFAULT NULL,
  6. `value` text NOT NULL
  7. ) 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

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:
  1. $sgq = "SELECT * FROM `sg_queues` WHERE date = '$data' AND devid = '$devid' ORDER BY id DESC LIMIT 1";
  2. $sgres = $mysqli -> query($sgq);
  3. $queue = mysqli_fetch_array($sgres, MYSQLI_ASSOC);
  4. $lines = explode(PHP_EOL, $queue['value']);
  5.  
  6. $cq = "SELECT * FROM `customers` WHERE status = '1';
  7. $res = $mysqli -> query($cq);
  8.  
  9. while($cust = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
  10. $search_string = '/ID'.sprintf('%04d', $cust['id']).'/';
  11. $found = preg_grep($search_string, $lines)
  12. var_dump($found);
  13. }

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" }

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?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KR2615
post 28.09.2022, 23:18:07
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

Ostrzeżenie: (0%)
-----


O właśnie, o klucze tablicy mi chodziło. Zadziałało, dzięki!


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 11:41