summaryrefslogtreecommitdiff
path: root/frontend/list.php
blob: 24340a821178807a935db7d9e45f05afe5d8ad9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
require_once('conf.php');

$repo = [];

$stmt = $db->prepare(
	'SELECT `package`.`id`,`package`.`name`,`url`,`desc`,`author`.`name` ' .
	'FROM `package`,`author` ' .
	'WHERE `package`.`author_id` = `author`.`id`');
$stmt->execute();
$stmt->bind_result($id, $name, $url, $desc, $author);
while ($stmt->fetch() === true) {
	$repo[] = [
		'id' => $id,
		'name' => $name,
		'author' => $author,
		'desc' => $desc,
		'url' => $url,
		'versions' => []
	];
}
$stmt->close();

$stmt = $db->prepare(
	'SELECT `major`,`minor`,`revision`,`depends` ' .
	'FROM `version` WHERE `package_id`=?');
$stmt->bind_param('i', $pkg);
$stmt->bind_result($maj, $min, $rev, $deps);
for ($i = 0; $i < count($repo); $i++) {
	$pkg = $repo[$i]['id'];
	$stmt->execute();
	while ($stmt->fetch() === true) {
		$repo[$i]['versions'][] = [
			'version' => [$maj, $min, $rev],
			'depends' => json_decode($deps)
		];
	}
	unset($repo[$i]['id']);
}

print(json_encode($repo));