/** * returns array of all groups of a group leader * * [0]=> array(6) { * ["grp_ID"] => string(1) "1" * ["grp_name"] => string(5) "admin" * ["grp_leader"] => string(9) "1234" * ["grp_trash"] => string(1) "0" * ["count_users"] => string(1) "2" * ["leader_name"] => string(5) "user1" * } * * [1]=> array(6) { * ["grp_ID"] => string(1) "2" * ["grp_name"] => string(4) "Test" * ["grp_leader"] => string(9) "12345" * ["grp_trash"] => string(1) "0" * ["count_users"] => string(1) "1" * ["leader_name"] => string(7) "user2" * } * * @global array $kga kimai-global-array * @return array * @author sl * */ function get_arr_grp_by_leader($leader_id, $trash = 0) { global $kga, $conn; $leader_id = MySQL::SQLValue($leader_id, MySQL::SQLVALUE_NUMBER); $p = $kga['server_prefix']; // Lock tables for alles queries executed until the end of this function $lock = "LOCK TABLE {$p}usr READ, {$p}grp READ, {$p}ldr READ;"; $conn->Query($lock); logfile($conn->Error()); //------ if (!$trash) { $trashoption = "AND grp_trash !=1"; } $query = "SELECT {$p}grp.* \n FROM {$p}grp JOIN {$p}ldr ON {$p}grp.grp_ID ={$p}ldr.grp_ID \n WHERE grp_leader = {$leader_id} {$trashoption} ORDER BY grp_name"; logfile($query); $conn->Query($query); // rows into array $groups = array(); $i = 0; $rows = $conn->RecordsArray(MYSQL_ASSOC); foreach ($rows as $row) { $groups[] = $row; // append user count $groups[$i]['count_users'] = grp_count_users($row['grp_ID']); // append leader array $ldr_id_array = grp_get_ldrs($row['grp_ID']); $ldr_name_array = array(); $j = 0; foreach ($ldr_id_array as $ldr_id) { $ldr_name_array[$j] = usr_id2name($ldr_id); $j++; } $groups[$i]['leader_name'] = $ldr_name_array; $i++; } //------ // Unlock tables $unlock = "UNLOCK TABLES;"; $conn->Query($unlock); logfile($conn->Error()); return $groups; }
/** * returns array of all groups * * [0]=> array(6) { * ["grp_ID"]=> string(1) "1" * ["grp_name"]=> string(5) "admin" * ["grp_leader"]=> string(9) "1234" * ["grp_trash"]=> string(1) "0" * ["count_users"]=> string(1) "2" * ["leader_name"]=> string(5) "user1" * } * * [1]=> array(6) { * ["grp_ID"]=> string(1) "2" * ["grp_name"]=> string(4) "Test" * ["grp_leader"]=> string(9) "12345" * ["grp_trash"]=> string(1) "0" * ["count_users"]=> string(1) "1" * ["leader_name"]=> string(7) "user2" * } * * @global array $kga kimai-global-array * @return array * @author th * */ function get_arr_grp_by_leader($leader_id, $trash = 0) { global $kga, $pdo_conn; // Lock tables $pdo_query_l = $pdo_conn->prepare("LOCK TABLE \n " . $kga['server_prefix'] . "usr READ, \n " . $kga['server_prefix'] . "grp READ, \n " . $kga['server_prefix'] . "ldr READ\n "); $result_l = $pdo_query_l->execute(); if (!$trash) { $trashoption = "AND grp_trash !=1"; } $pdo_query = $pdo_conn->prepare("SELECT " . $kga['server_prefix'] . "grp.* \n FROM " . $kga['server_prefix'] . "grp JOIN " . $kga['server_prefix'] . "ldr ON " . $kga['server_prefix'] . "grp.grp_ID =" . $kga['server_prefix'] . "ldr.grp_ID \n WHERE grp_leader = ? {$trashoption} ORDER BY grp_name"); $result = $pdo_query->execute($leader_id); // rows into array $groups = array(); $i = 0; while ($row = $pdo_query->fetch(PDO::FETCH_ASSOC)) { $groups[] = $row; // append user count $groups[$i]['count_users'] = grp_count_users($row['grp_ID']); // append leader array $ldr_id_array = grp_get_ldrs($row['grp_ID']); $j = 0; $ldr_name_array = array(); foreach ($ldr_id_array as $ldr_id) { $ldr_name_array[$j] = usr_id2name($ldr_id); $j++; } $groups[$i]['leader_name'] = $ldr_name_array; $i++; } // Unlock tables $pdo_query_ul = $pdo_conn->prepare("UNLOCK TABLES"); $result_ul = $pdo_query_ul->execute(); // error_log("get_arr_grp: " . serialize($groups)); return $groups; }