function __construct($name, $value, $valueTable, $valueField = 'nefub_id', array $where = array(), $orderBy = 'name', $direction = 'ASC', $limit = null) { parent::__construct($name, (int) $value); $rows = Database::select_rows($valueTable, $where, $orderBy, $limit, $direction); $this->addOption('Geen', 0); foreach ($rows as $row) { $this->addOption($row['name'], $row[$valueField]); } }
function main($path) { $db = new Database(); if (!$db->connect()) { exit_with_error('DatabaseConnectionFailure'); } if (count($path) > 1) { exit_with_error('InvalidRequest'); } $build_requests_fetcher = new BuildRequestsFetcher($db); if (count($path) > 0 && $path[0]) { $group_id = intval($path[0]); $group = $db->select_first_row('analysis_test_groups', 'testgroup', array('id' => $group_id)); if (!$group) { exit_with_error('GroupNotFound', array('id' => $group_id)); } $test_groups = array($group); $build_requests_fetcher->fetch_for_group($group_id); } else { $task_id = array_get($_GET, 'task'); if (!$task_id) { exit_with_error('TaskIdNotSpecified'); } $test_groups = $db->select_rows('analysis_test_groups', 'testgroup', array('task' => $task_id)); if (!is_array($test_groups)) { exit_with_error('FailedToFetchTestGroups'); } $build_requests_fetcher->fetch_for_task($task_id); } if (!$build_requests_fetcher->has_results()) { exit_with_error('FailedToFetchBuildRequests'); } $test_groups = array_map("format_test_group", $test_groups); $group_by_id = array(); foreach ($test_groups as &$group) { $group_id = $group['id']; $group_by_id[$group_id] =& $group; $platforms = $db->query_and_fetch_all('SELECT DISTINCT(config_platform) FROM test_configurations, test_runs, build_requests WHERE run_config = config_id AND run_build = request_build AND request_group = $1', array($group_id)); if ($platforms) { $group['platform'] = $platforms[0]['config_platform']; } } $build_requests = $build_requests_fetcher->results(); foreach ($build_requests as $request) { $request_group =& $group_by_id[$request['testGroup']]; array_push($request_group['buildRequests'], $request['id']); array_push($request_group['rootSets'], $request['rootSet']); } exit_with_success(array('testGroups' => $test_groups, 'buildRequests' => $build_requests, 'rootSets' => $build_requests_fetcher->root_sets(), 'roots' => $build_requests_fetcher->roots())); }
function main($path) { $db = new Database(); if (!$db->connect()) { exit_with_error('DatabaseConnectionFailure'); } if (count($path) > 1) { exit_with_error('InvalidRequest'); } $build_request_id = array_get($_GET, 'buildRequest'); $task_id = count($path) > 0 && $path[0] ? $path[0] : array_get($_GET, 'id'); if ($build_request_id) { $tasks = $db->query_and_fetch_all('SELECT analysis_tasks.* FROM build_requests, analysis_test_groups, analysis_tasks WHERE request_id = $1 AND request_group = testgroup_id AND testgroup_task = task_id', array(intval($build_request_id))); if (!$tasks) { exit_with_error('TaskNotFound', array('buildRequest' => $build_request_id)); } } else { if ($task_id) { $task_id = intval($task_id); $task = $db->select_first_row('analysis_tasks', 'task', array('id' => $task_id)); if (!$task) { exit_with_error('TaskNotFound', array('id' => $task_id)); } $tasks = array($task); } else { $metric_id = array_get($_GET, 'metric'); $platform_id = array_get($_GET, 'platform'); if (!!$metric_id != !!$platform_id) { exit_with_error('InvalidArguments', array('metricId' => $metric_id, 'platformId' => $platform_id)); } if ($metric_id) { $tasks = $db->select_rows('analysis_tasks', 'task', array('platform' => $platform_id, 'metric' => $metric_id)); } else { // FIXME: Limit the number of tasks we fetch. $tasks = array_reverse($db->fetch_table('analysis_tasks', 'task_created_at')); } if (!is_array($tasks)) { exit_with_error('FailedToFetchTasks'); } } } $tasks = array_map("format_task", $tasks); $bugs = fetch_and_push_bugs_to_tasks($db, $tasks); exit_with_success(array('analysisTasks' => $tasks, 'bugs' => $bugs)); }
/** * * @param string $class * @param array $where * @param string $orderBy * @param string $dir * @return Model[] */ public static function getAllModels($class, $where = array(), $orderBy = null, $dir = 'ASC', $limit = 0) { $rows = Database::select_rows($class, $where, $orderBy, $dir, $limit); $instances = array(); foreach ($rows as $row) { $instances[] = new $class($row['id']); } return $instances; }
$pages_dir = "/p/"; // Merge $_GET and $_POST, latter has precedence. $request = array_merge($_GET, $_POST); // Page is requested page or default to home $page = $request["page"] or $page = "home"; // Set $action to one of edit, view, rename, delete, if exists in query string $action = reset(array_intersect(array_keys($request), explode(",", "edit,view,rename,delete"))); // Connect to main database $db = new Database($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, true); // Set up base array. Fill out later for current page. $page_array = array("isspecial" => false, "isreal" => false, "slug" => $page, "title" => "", "body" => "", "html" => "", "excerpt" => "", "lastupdate" => 0, "created" => 0, "isblog" => false, "tags" => array(), "childs" => array(), "blogposts" => array()); $message = array(); /// Special Pages /////////////////// if ($page == "all") { // Get all pages and merge special data with page array $page_array = array_merge($page_array, array("isspecial" => true, "title" => "All pages", "html" => "", "childs" => $db->select_rows("SELECT slug,title,excerpt FROM pages ORDER BY title ASC"))); } else { if ($page == "blog") { $blogs = $db->select_rows("SELECT slug,title,body,excerpt,created FROM blog ORDER BY created DESC"); $page_array = array_merge(array_merge($page_array, array_shift($blogs)), array("isblog" => true, "isspecial" => true, "blogposts" => $blogs)); } } /// Regular Pages /////////////////// if (!$page_array["isspecial"]) { $page_array["isblog"] = is_blog($page); $page_escape = mysql_real_escape_string($page); $table = $page_array["isblog"] ? "blog" : "pages"; // Merge with $page_array if ($newarray = $db->select_row("SELECT * FROM {$table} WHERE slug='{$page_escape}' LIMIT 1")) { $page_array = array_merge($page_array, $newarray); }