Hej
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;
$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); $lines = http://www.php.net/explode(PHP_EOL, $queue['value']); $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); }
Nie bardzo rozumiem o co pytasz. Co chcesz ostatecznie miec?
chciałbym sobie np. funkcjoą explode() pociąć po ; tego stringa ale raz kryje mi się on pod $found[47][0], innym razem jako $found[1077][0]. Jak ten numerek namierzyć?
Nie kumam. Przeciez masz w zmiennej $found swoje ciagi to je sobie tnij. Wszystko tam masz.
A jak bardzo sie upierasz, by pobrac te 47 to po to jest funkcja key(). Ale nadal uwazam ze to jest zbedne jej uzycie, skoro w $found masz wszystko co ci potrzeba.
Po prostu znaleziony wynik wrzucaj do tablicy, $cust['id'] to klucz tablicy, a linijka wartość dla tego klucza.
Tylko jak mam ciąć? Te 47 i 1077 to nie są ID klienta tylko numery linijki z $queues['value'];
Taki kod:
http://www.php.net/var_dump($found); $values = http://www.php.net/explode(";", $found);
Co Ty chcesz ciąć skoro 47 i 1077, z Twojego przykładu, to klucze tablicy?
foreach ($found as $id => $text) { $texts = http://www.php.net/explode(';', $text); http://www.php.net/var_dump($id); http://www.php.net/var_dump($texts); }
O właśnie, o klucze tablicy mi chodziło. Zadziałało, dzięki!
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)