/** * Liest aus der DB die Maildaten aus. * * @param reference $mysql_link MySQL Objekt * @param string $hash Hash */ private function _db2mail($mysql_link, $hash, $delete = false) { if ($delete == false) { $select_query = "SELECT * FROM mailto WHERE mailto_hash = '{$hash}'"; $mysql_link->query($select_query); $mailto_data = $mysql_link->fetcharray(); $this->_mail_reciver_name = $mailto_data["mailto_reciver_name"]; $this->_mail_reciver = $mailto_data["mailto_reciver_email"]; $this->_mail_sender_name = $mailto_data["mailto_sender_name"]; $this->_mail_sender = $mailto_data["mailto_sender_email"]; $this->_mail_titel = $mailto_data["mailto_subject"]; $this->_mail_content = $mailto_data["mailto_content"]; } else { $delete_query = "DELETE FROM mailto WHERE mailto_hash = '{$hash}'"; $mysql_link->query($delete_query); } }
/** * Фильтрует статьи из базы данных по автору, по категории * и по дате публикации * * @param reference $conn Соединение с БД * @param int $authId Идентификатор автора статьи * @param int $catId Идентификатор категории * @param datetime $pubDate Дата публикации статьи * @return object[] */ public static function Find($conn, $authId = NULL, $catId = NULL, $pubDate = NULL) { // Формируем условия для фильтрации статей $q = "Select Articles.ID, Articles.Name, Articles.Content, Articles.PubDate,\n\t\t\t\t\tCategory.ID, Category.Name,\n\t\t\t\t\tAuthors.ID, Authors.Name\n\t\t\t\tFrom Category,\n\t\t\t\t\tArticles Left Outer Join ArtAuth On ArtAuth.ID_Article = Articles.ID\n\t\t\t\t\tLeft Outer Join ArtCat On ArtCat.ID_Article = Articles.ID\n\t\t\t\t\tLeft Outer Join Authors On Authors.ID = ArtAuth.ID_Author\n\t\t\t\tWhere ArtAuth.ID_Author = Authors.ID and ArtCat.ID_Category = Category.ID"; if (isset($authId) && $authId >= 0) { $q = $q . " And Authors.ID = {$authId}"; } if (isset($catId) && $catId >= 0) { $q = $q . " And Category.ID = {$catId}"; } if (isset($pubDate)) { if ($pubDate == -2) { $q = $q . " And TO_DAYS(NOW()) - TO_DAYS(Articles.PubDate) <= 7"; } elseif ($pubDate == -3) { $q = $q . " And TO_DAYS(NOW()) - TO_DAYS(Articles.PubDate) <= 365"; } } /** @var reference Запрос в базу данных */ $res = $conn->query($q); /** @var array[] Массив объектов класса Article */ $articles = array(); while ($article = $res->fetch()) { $id = $article[0]; $auth = NULL; if (isset($article[6])) { $auth = new Author($article[6], $article[7]); } $id = $article[0]; if (isset($articles[$id]) && isset($auth)) { $arr = $articles[$id]->authors; $arr[] = $auth; $articles[$id]->authors = $arr; } else { $articles[$id] = Article::Init($id, $article[1], $article[2], $article[3], new Category($article[4], $article[5]), new Author($article[6], $article[7]), $auth); } } return $articles; }