Fragehamtaren::raknaSvar()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
nc 1
nop 1
dl 0
loc 9
c 0
b 0
f 0
cc 1
rs 10
1
<?php
2
3
namespace KW\Inlagg;
4
5
use Anax\Commons\ContainerInjectableInterface;
6
use Anax\Commons\ContainerInjectableTrait;
7
8
class Fragehamtaren implements ContainerInjectableInterface
9
{
10
    use ContainerInjectableTrait;
11
12
    public function __construct($di)
13
    {
14
        $this->di = $di;
15
    }
16
17
18
    public function hamtaSenasteInlagg()
19
    {
20
        $db = $this->di->get("db");
21
        $db->connect();
22
        $sql = "SELECT * FROM inlagg JOIN anvandare2 ON anvandare2.anvandarid=inlagg.userid WHERE type='fraga' ORDER BY published DESC LIMIT 3;";
23
        $res = $db->executeFetchAll($sql);
24
25
        return $res;
26
    }
27
28
    public function allaInlagg($sort)
29
    {
30
        $db = $this->di->get("db");
31
        $db->connect();
32
        if ($sort == "published") {
33
            $sql = "SELECT * FROM inlagg JOIN anvandare2 ON anvandare2.anvandarid=inlagg.userid WHERE type='fraga' ORDER BY published ASC;";
34
        } else {
35
            $sql = "SELECT * FROM inlagg JOIN anvandare2 ON anvandare2.anvandarid=inlagg.userid WHERE type='fraga' ORDER BY rankning DESC;";
36
        }
37
38
        $res = $db->executeFetchAll($sql);
39
40
        return $res;
41
    }
42
43
    //hämtar taggar knutna till id på viss fråga
44
    public function hamtaTaggar($id)
45
    {
46
        $db = $this->di->get("db");
47
        $sql = "SELECT tagg FROM (SELECT taggid, taggar.tagg, inlagg FROM taggar JOIN inlaggtagg ON inlaggtagg.tagg = taggar.taggid) AS a WHERE inlagg = ?;";
48
        $tags = $db->executeFetchAll($sql, [$id]);
49
        return $tags;
50
    }
51
52
    public function allaTaggar()
53
    {
54
        $db = $this->di->get("db");
55
        $db->connect();
56
        $sql = "SELECT * FROM taggar;";
57
        $alltags = $db->executeFetchAll($sql);
58
        return $alltags;
59
    }
60
61
    public function fragorMedTaggen($tagg, $sort)
62
    {
63
64
        $db = $this->di->get("db");
65
        $db->connect();
66
        if ($sort == "published") {
67
            $sql = "SELECT * FROM ((inlaggtagg JOIN taggar ON inlaggtagg.tagg = taggar.taggid) JOIN inlagg ON inlagg.id = inlaggtagg.inlagg) JOIN anvandare2 ON inlagg.userid = anvandare2.anvandarid WHERE taggar.tagg=? ORDER BY published ASC;";
68
        } else {
69
            $sql = "SELECT * FROM ((inlaggtagg JOIN taggar ON inlaggtagg.tagg = taggar.taggid) JOIN inlagg ON inlagg.id = inlaggtagg.inlagg) JOIN anvandare2 ON inlagg.userid = anvandare2.anvandarid WHERE taggar.tagg=? ORDER BY rankning DESC;";
70
        }
71
        $res = $db->executeFetchAll($sql, [$tagg]);
72
73
        return $res;
74
    }
75
76
    public function raknaSvar($id)
77
    {
78
79
        $db = $this->di->get("db");
80
        $db->connect();
81
        $sql = "SELECT COUNT(tillhor) AS nr  FROM inlagg WHERE tillhor=?";
82
        $res = $db->executeFetch($sql, [$id]);
83
84
        return $res;
85
    }
86
87
    public function popularasteTaggar()
88
    {
89
        $db = $this->di->get("db");
90
        $db->connect();
91
        $sql = "SELECT taggar.tagg, COUNT(*) AS antal FROM inlaggtagg JOIN taggar ON taggar.taggid = inlaggtagg.tagg GROUP BY taggar.tagg ORDER BY antal DESC LIMIT 5;";
92
        $res = $db->executeFetchAll($sql);
93
        return $res;
94
    }
95
96
    public function aktivasteAnvandare()
97
    {
98
        $db = $this->di->get("db");
99
        $db->connect();
100
        $sql = "SELECT fraga + svar + kommentar + rsvar + rfraga + rkommentar AS aktivitet, anvandarid, anvandarnamn, email, datum FROM anvandare2 ORDER BY aktivitet DESC LIMIT 3;";
101
        $res = $db->executeFetchAll($sql);
102
        return $res;
103
    }
104
}
105