From 594657f2c738b188a226b8698bbff81f14651a59 Mon Sep 17 00:00:00 2001 From: JJ Date: Wed, 15 Oct 2014 22:08:27 -0400 Subject: [PATCH] Manual merge for 0c3e51963b5803d66443e71554d3e06a296805b3 in pull request #269. --- common/database.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/common/database.cpp b/common/database.cpp index 91a659d5b..f4a22d823 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -2931,22 +2931,26 @@ uint32 Database::GetGroupID(const char* name){ } /* Is this really getting used properly... A half implementation ? Akkadius */ -char* Database::GetGroupLeaderForLogin(const char* name, char* leaderbuf){ - leaderbuf = ""; +char* Database::GetGroupLeaderForLogin(const char* name, char* leaderbuf) { + strcpy(leaderbuf, ""); + uint32 group_id = 0; + std::string query = StringFormat("SELECT `groupid` FROM `group_id` WHERE `name = '%s'", name); auto results = QueryDatabase(query); - auto row = results.begin(); uint32 group_id = 0; - for (auto row = results.begin(); row != results.end(); ++row) { - if (row[0]){ group_id = atoi(row[0]); } - } - if (group_id > 0){ - query = StringFormat("SELECT `leadername` FROM `group_leader` WHERE `gid` = '%u' AND `groupid` = %u LIMIT 1", group_id); - results = QueryDatabase(query); - for (auto row = results.begin(); row != results.end(); ++row) { - if (row[0]){ strcpy(leaderbuf, row[0]); } - } - } + for (auto row = results.begin(); row != results.end(); ++row) + if (row[0]) + group_id = atoi(row[0]); + + if (group_id == 0) + return leaderbuf; + + query = StringFormat("SELECT `leadername` FROM `group_leader` WHERE `gid` = '%u' AND `groupid` = %u LIMIT 1", group_id); + results = QueryDatabase(query); + + for (auto row = results.begin(); row != results.end(); ++row) + if (row[0]) + strcpy(leaderbuf, row[0]); return leaderbuf; }