| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- CreateMapID(mapname[]) {
- format(g_QueryString, sizeof g_QueryString, "INSERT INTO maps (name) VALUES ('%q')", mapname);
- db_free_result( db_query(g_MapDB, g_QueryString) );
- }
- DestroyMapID(mapid) {
- format(g_QueryString, sizeof g_QueryString, "DELETE FROM maps WHERE mapid = '%i'", mapid);
- db_free_result( db_query(g_MapDB, g_QueryString) );
- }
- GetMapID(mapname[]) {
- new mapid = INVALID_MAP_ID;
- format(g_QueryString, sizeof g_QueryString, "SELECT mapid FROM maps WHERE lower(name) = lower('%q')", mapname);
- g_DBResult = db_query(g_MapDB, g_QueryString);
- if( db_num_rows(g_DBResult) > 0 ) {
- mapid = db_get_field_int(g_DBResult);
- }
- db_free_result(g_DBResult);
- return mapid;
- }
- GetMapName(mapid, name[], name_size) {
- format(g_QueryString, sizeof g_QueryString, "SELECT name FROM maps WHERE mapid = '%i'", mapid);
- g_DBResult = db_query(g_MapDB, g_QueryString);
- new mapfound = db_num_rows(g_DBResult) > 0;
- if( mapfound ) {
- db_get_field(g_DBResult, 0, name, name_size);
- } else {
- format(name, name_size, "Unknown Map");
- }
- db_free_result(g_DBResult);
- return mapfound;
- }
- FindMaps(result[], result_size, search[], offset, &max_offset) {
- new rows_added;
- if( isempty(search) ) {
- format(g_QueryString, sizeof g_QueryString, "\
- SELECT mapid, \
- (SELECT COUNT(*) FROM maps) AS max_rowcount \
- FROM maps \
- LIMIT %i OFFSET %i",
- result_size, offset
- );
- } else {
- format(g_QueryString, sizeof g_QueryString, "\
- SELECT mapid, \
- (SELECT COUNT(*) FROM maps WHERE mapid LIKE '%%%q%%' OR name LIKE '%%%q%%') AS max_rowcount \
- FROM maps \
- WHERE mapid LIKE '%%%q%%' OR name LIKE '%%%q%%' \
- LIMIT %i OFFSET %i",
- search, search,
- search, search,
- result_size, offset
- );
- }
- g_DBResult = db_query(g_MapDB, g_QueryString);
- new result_rows = db_num_rows(g_DBResult);
- if( result_rows > 0 ) {
- max_offset = db_get_field_assoc_int(g_DBResult, "max_rowcount") - 1;
- if( max_offset < 0 ) {
- max_offset = 0;
- }
- }
- for(new row; row < result_rows; row ++) {
- if( rows_added >= result_size ) {
- break;
- }
- result[rows_added ++] = db_get_field_assoc_int(g_DBResult, "mapid");
- db_next_row(g_DBResult);
- }
- db_free_result(g_DBResult);
- return rows_added;
- }
|