|
@@ -0,0 +1,88 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * Created by PhpStorm.
|
|
|
+ * User: mrs
|
|
|
+ * Date: 15.01.2018
|
|
|
+ * Time: 14:37
|
|
|
+ */
|
|
|
+
|
|
|
+namespace App\Repository;
|
|
|
+
|
|
|
+
|
|
|
+class StudentLanguagesRepository extends RepositoryAbstract
|
|
|
+{
|
|
|
+
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ parent::__construct();
|
|
|
+ $this->entityName = 'student_languages';
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function findById($id)
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("SELECT s.firstname,s.lastname,s.class, GROUP_CONCAT(l.name) AS name FROM {$this->db1} c
|
|
|
+ JOIN {$this->entityName} i ON (s.id = st.student_id)
|
|
|
+ JOIN {$this->db2} m ON (l.id = st.languages_id) WHERE s.id = :id GROUP BY s.id;");
|
|
|
+ $stmt->execute(['id' => $id]);
|
|
|
+ foreach ($stmt as $row) {
|
|
|
+ return new Student_Languages ($row['firstname'], $row['lastname'], $row['class'], $row['name']);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function findAll(): array
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("SELECT s.firstname,s.lastname,s.class, s.id, GROUP_CONCAT(l.name) AS name FROM {$this->db1} c
|
|
|
+ JOIN student_languages i ON (s.id = st.student_id)
|
|
|
+ JOIN languages m ON (l.id = st.languages_id) GROUP BY c.id;");
|
|
|
+ $stmt->execute();
|
|
|
+ $studlang = [];
|
|
|
+ foreach ($stmt as $row) {
|
|
|
+ $studlang[] = new Student_Languages($row['firstname'], $row['lastname'], $row['class'], $row['name'], $row['id']);
|
|
|
+ }
|
|
|
+ return $studlang;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getLanguages(): array
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("SELECT * FROM {$this->db2};");
|
|
|
+ $stmt->execute();
|
|
|
+ $getLang = [];
|
|
|
+ foreach ($stmt as $key => $row) {
|
|
|
+ $getLang[$row['id']] = $row['languages'];
|
|
|
+ }
|
|
|
+ return $getLang;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function saveStudentLanguages(string $stringSave): void
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("INSERT INTO {$this->entityName} (student_id, languages_id) VALUES {$stringSave} ");
|
|
|
+ $stmt->execute();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function update(Student_Languages $student_langueges)
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("SELECT * FROM {$this->entityName} WHERE id = :id");
|
|
|
+ $stmt->execute();
|
|
|
+ $student_languages = '';
|
|
|
+ foreach ($stmt as $row) {
|
|
|
+ $student_languages = new Student_Languages($row['firstname'], $row['lastname'], $row['class'], $row['name'], $row['id']);
|
|
|
+ }
|
|
|
+ $stmt = $this->pdo->prepare("UPDATE {$this->dbMain} SET firstname = :firstname WHERE id = :id");
|
|
|
+ $stmt->execute([
|
|
|
+ 'firstname' => $student_langueges->firstname,
|
|
|
+ 'languages' => $student_langueges->name,
|
|
|
+ 'id' => $student_langueges->id,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function delete(int $id)
|
|
|
+ {
|
|
|
+ $stmt = $this->pdo->prepare("DELETE s, i FROM student c JOIN student_languages i ON (s.id = st.student_languages) WHERE s.id = :id;");
|
|
|
+ $stmt->execute(['id' => $id]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|