From 342ae0f0e4b550541db1612842154f50e8416d46 Mon Sep 17 00:00:00 2001 From: Martin Ambrus Date: Thu, 7 Dec 2017 14:03:11 +0100 Subject: [PATCH] fix: prisoners caching returned wrong number of prisoners #421 --- GameEngine/Database.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/GameEngine/Database.php b/GameEngine/Database.php index 9e80fbf8..a7abcd1c 100755 --- a/GameEngine/Database.php +++ b/GameEngine/Database.php @@ -7581,19 +7581,26 @@ References: User ID/Message ID, Mode } if(!$mode) { - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where wref IN(".implode(' ', $wid).")"; + $q = "SELECT * FROM " . TB_PREFIX . "prisoners where wref IN(".implode(', ', $wid).")"; }else { - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where `from` IN(".implode(' ', $wid).")"; + $q = "SELECT * FROM " . TB_PREFIX . "prisoners where `from` IN(".implode(', ', $wid).")"; } $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); // return a single value if (!$array_passed) { - self::$prisonersCache[$wid[0].$mode] = $result; + if (count($result) == 1) { + $result = $result[0]; + } + self::$prisonersCache[$wid[0].$mode] = (count($result) ? [$result] : []); } else { if ($result && count($result)) { + if (!isset(self::$prisonersCache[ $record[ ( $mode ? 'from' : 'wref' ) ] . $mode ])) { + self::$prisonersCache[ $record[ ( $mode ? 'from' : 'wref' ) ] . $mode ] = []; + } + foreach ( $result as $record ) { - self::$prisonersCache[ $record[ ( $mode ? 'from' : 'wref' ) ] . $mode ] = $record; + self::$prisonersCache[ $record[ ( $mode ? 'from' : 'wref' ) ] . $mode ][] = $record; } }