예제 #1
0
 /**
  * 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);
     }
 }
예제 #2
0
 /**
  * Фильтрует статьи из базы данных по автору, по категории
  * и по дате публикации
  *
  * @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;
 }