diff --git a/common/database.cpp b/common/database.cpp index e8f1a1d7b..4690a06c3 100644 --- a/common/database.cpp +++ b/common/database.cpp @@ -2762,22 +2762,24 @@ 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]); } - } + 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]); } - } - } + 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; }