From c11edf96c9a4d4a0411eb94781c44f65f47c9727 Mon Sep 17 00:00:00 2001 From: /jedi/ Date: Sat, 2 Mar 2019 02:16:37 +0100 Subject: [PATCH] add multifile support --- functions.php | 81 ++++++++++++++++++++-------------- templates/found_item_edit.php | 2 +- templates/found_item_table.php | 12 +++-- templates/table.php | 19 ++++---- 4 files changed, 70 insertions(+), 44 deletions(-) diff --git a/functions.php b/functions.php index edba517..9e3c3f8 100644 --- a/functions.php +++ b/functions.php @@ -1,31 +1,44 @@ query("SELECT found_items.*, files.hash FROM (SELECT files.* from files ORDER BY files.id DESC LIMIT 100000) as files, found_items LEFT JOIN matches ON found_items.id = matches.f_id WHERE found_items.del = 0 AND files.item_id = found_items.id AND matches.f_id IS NULL GROUP BY files.item_id ORDER BY found_items.id DESC"); } else { $res = $mysqli->query("SELECT found_items.*, files.hash FROM (SELECT files.* from files ORDER BY files.id DESC LIMIT 100000) as files, found_items WHERE files.item_id = found_items.id AND found_items.del = 0 GROUP BY files.item_id ORDER BY found_items.id ASC"); + }*/ + if ($onlyUnmatched) { + $res = $mysqli->query("SELECT found_items.* FROM found_items LEFT JOIN matches ON found_items.id = matches.f_id WHERE found_items.del = 0 AND matches.f_id IS NULL ORDER BY found_items.id DESC"); + } else { + $res = $mysqli->query("SELECT found_items.* FROM found_items WHERE found_items.del = 0 ORDER BY found_items.id ASC"); } $ret = array(); - while ($row = $res->fetch_assoc()) { - $ret[] = $row; + while ($res && $row = $res->fetch_assoc()) { + $ret[$row["id"]] = $row; + $ret[$row["id"]]["hash"] = "deprecated"; + } + $res = $mysqli->query("SELECT files.* FROM files, found_items WHERE found_items.del = 0 AND found_items.id=files.item_id"); + while ($res && $row = $res->fetch_assoc()) { + $ret[$row["item_id"]]["files"][] = $row; } return $ret; } -function get_lostitems($onlyUnmatched = false){ +function get_lostitems($onlyUnmatched = false) +{ global $mysqli; if ($onlyUnmatched) { $res = $mysqli->query("SELECT lost_items.* FROM lost_items LEFT JOIN matches ON lost_items.id = matches.l_id WHERE lost_items.del = 0 AND matches.l_id IS NULL ORDER BY lost_items.id DESC"); @@ -33,73 +46,77 @@ function get_lostitems($onlyUnmatched = false){ $res = $mysqli->query("SELECT * FROM lost_items WHERE lost_items.del = 0 ORDER BY id ASC"); } $ret = array(); - while ($row = $res->fetch_assoc()) { + while ($res && $row = $res->fetch_assoc()) { $ret[] = $row; } return $ret; } -function get_founditem($id){ +function get_founditem($id) +{ global $mysqli; - $res = $mysqli->query("SELECT * FROM found_items, files WHERE MD5(found_items.id) = '".md5($id)."' AND found_items.id = files.item_id ORDER BY files.id DESC"); + $res = $mysqli->query("SELECT * FROM found_items, files WHERE MD5(found_items.id) = '" . md5($id) . "' AND found_items.id = files.item_id ORDER BY files.id DESC"); - if ($row = $res->fetch_assoc()) { + if ($res && $row = $res->fetch_assoc()) { return $row; - }else{ + } else { return false; } } -function get_founditem_by_uid($uid){ +function get_founditem_by_uid($uid) +{ global $mysqli; - $res = $mysqli->query("SELECT * FROM found_items, files WHERE MD5(found_items.uid) = '".md5($uid)."' AND found_items.id = files.item_id ORDER BY files.id DESC"); + $res = $mysqli->query("SELECT * FROM found_items, files WHERE MD5(found_items.uid) = '" . md5($uid) . "' AND found_items.id = files.item_id ORDER BY files.id DESC"); - if ($row = $res->fetch_assoc()) { + if ($res && $row = $res->fetch_assoc()) { return $row; - }else{ + } else { return false; } } -function get_matches(){ +function get_matches() +{ global $mysqli; - $res = $mysqli->query("SELECT matches.id AS id, matches.f_id as f_id, matches.l_id as l_id, lost.was as l_desc, items.was as f_desc " - ."FROM lost, items, matches WHERE lost.id = matches.l_id and items.id = matches.f_id ORDER BY matches.id ASC;"); + $res = $mysqli->query("SELECT matches.id AS id, matches.f_id as f_id, matches.l_id as l_id, lost_items.was as l_desc, found_items.was as f_desc " + . "FROM lost_items, found_items, matches WHERE lost_items.id = matches.l_id and found_items.id = matches.f_id ORDER BY matches.id ASC;"); $ret = array(); - while ($row = $res->fetch_assoc()) { + while ($res && $row = $res->fetch_assoc()) { $ret[] = $row; } return $ret; } -function get_stats(){ +function get_stats() +{ global $mysqli; $ret = array(); - $ret["lost"]=0; - $ret["found"]=0; + $ret["lost"] = 0; + $ret["found"] = 0; - - $res = $mysqli->query("select hour(date) as h, day(date) as d, count(date) as c from items group by h, d order by d, h"); + $res = $mysqli->query("select hour(date) as h, day(date) as d, count(date) as c from found_items group by h, d order by d, h"); $ret["graph"] = array(); - while ($row = $res->fetch_assoc()) { + while ($res && $row = $res->fetch_assoc()) { $ret["graph"][] = $row; } $res = $mysqli->query("SELECT COUNT(*) AS c FROM lost_items WHERE lost_items.del = 0 ORDER BY id ASC"); - if ($row = $res->fetch_assoc()) { + if ($res && $row = $res->fetch_assoc()) { $ret["lost"] = $row["c"]; } $res = $mysqli->query("SELECT COUNT(*) AS c FROM found_items WHERE found_items.del = 0 ORDER BY id ASC"); - if ($row = $res->fetch_assoc()) { + if ($res && $row = $res->fetch_assoc()) { $ret["found"] = $row["c"]; } $res = $mysqli->query("SELECT COUNT(*) AS c FROM matches ORDER BY id ASC"); - if ($row = $res->fetch_assoc()) { + if ($res && $row = $res->fetch_assoc()) { $ret["match"] = $row["c"]; } $ret["unmatched"] = $ret["found"] + $ret["lost"] - 2 * $ret["match"]; return $ret; } + ?> \ No newline at end of file diff --git a/templates/found_item_edit.php b/templates/found_item_edit.php index cd7b7c8..b2ce35d 100644 --- a/templates/found_item_edit.php +++ b/templates/found_item_edit.php @@ -21,7 +21,7 @@ - "/> + "/>

diff --git a/templates/found_item_table.php b/templates/found_item_table.php index 1d25cc9..bac8000 100644 --- a/templates/found_item_table.php +++ b/templates/found_item_table.php @@ -43,9 +43,15 @@ - + + + diff --git a/templates/table.php b/templates/table.php index f95588f..12bdd22 100644 --- a/templates/table.php +++ b/templates/table.php @@ -47,14 +47,17 @@