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));
|