-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
89 lines (77 loc) · 2.38 KB
/
index.php
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
try {
// подключение к серверу, база данных - roytuts; коллекция - users.
$mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);
$rows = $mng->executeQuery("roytuts.users", $query);
// заполение массива из одной коллекции.
$resultMF[0][0] = ''; $iRow=1;
foreach ($rows as $row) {
$array = json_decode(json_encode($row), true);
// названия столбцов.
if ($iRow==1) {
$i=0;
foreach (array_keys($array) as $data) {
$resultMF[0][$i] = (string)$data;
$i++;
}
}
// формирование массива для таблицы.
$iCol=0;
foreach ($array as $data) {
if (gettype($data) == 'string') {
// echo $data . '<br />';
$resultMF[$iRow][$iCol] = $data;
$iCol++;
}
if (gettype($data) == 'array') {
$resultMF[$iRow][$iCol]=''; $iPos=0;
foreach ($data as $value) {
// echo $value . '<br />';
if (Count($data) > 1) {
$resultMF[$iRow][$iCol] .= ' '.$value;
$iPos++;
if (Count($data) == $iPos) {
$iCol++;
}
}
if (Count($data) == 1) {
$resultMF[$iRow][$iCol] = $value.Count($data);
$iCol++;
}
}
}
}
$iRow++;
}
} catch (MongoDB\Driver\Exception\Exception $e) {
$filename = basename(__FILE__);
echo "The $filename script has experienced an error.\n";
echo "It failed with the following exception:\n";
echo "Exception:", $e->getMessage(), "\n";
echo "In file:", $e->getFile(), "\n";
echo "On line:", $e->getLine(), "\n";
}
// обрамление массива табличными тегами.
function GetTR($resultMF) {
$html = "";
for ($iRow = 0; $iRow < Count($resultMF); ++$iRow) {
$html .= "<tr>";
for ($iCol = 0; $iCol < Count($resultMF[$iRow]); ++$iCol)
$html .= "<td>".$resultMF[$iRow][$iCol]."</td>";
$html .= "</tr>";
}
return $html;
}
// ---------- основной код -----------------
// чтение шаблона из файла: select.html
$text = file_get_contents("select.html");
$list = explode("\n", $text);
for ($i=0; $i < Count($list); $i++) {
if (strpos($list[$i], "@tr") !== false) {
echo GetTR($resultMF);
} else {
echo $list[$i];
}
}
?>