Задать вопрос
50VAJJ
@50VAJJ

Переход на другую страницу с сохранением данных из таблиц(многие ко многим)?

Привет.
Есть функции -
public function getArticles(){
        // $articleResult = $this->pdo->query("SELECT * FROM `articles` ORDER BY `id` DESC");
       
        $articleResult = $this->pdo->query(
            "SELECT s.id, s.title, s.text, s.date, GROUP_CONCAT(t.name) AS tags, GROUP_CONCAT(t.id) AS tagsId, GROUP_CONCAT(t.alias) AS alias
           FROM articles AS s
           LEFT JOIN articleTags AS aT on s.id = aT.articleID
           LEFT JOIN tags AS t ON aT.tagID = t.id
           GROUP BY s.id"
        );)  
 
        $articles = $articleResult->fetchAll(PDO::FETCH_ASSOC);
        foreach($articles as $k => $v){
            $articles[$k]['a_tags'] = self::buildTags2($v['tagsId'], $v['alias'], $v['tags']);
        }
 
       
        return $articles;
 
    }
static function buildTags2($keys, $aliases, $tags){
            $result = array();
            if(!empty($keys)){
 
                $keys = explode(',', $keys);
                $aliases = explode(',', $aliases);
                $tags = explode(',', $tags);
 
                foreach ($keys as $k => $v){
                    $result[$v] = array(
                        'alias' => $aliases[$k],
                        'tag' => $tags[$k],
                    );
                }
            }
            return $result;
        }

Эти функции привязывают к статьям теги, через промежуточную таблицу.
Вопрос - как лучше сделать запрос после перехода на статью? Что бы теги были видны? Добавить параметр в getArticles($id) потом что то типа
getArticles($id){
$where = "WHERE `id` = ".$id;
$articleResult = $this->pdo->query("SELECT ... FROM articles $where ...
}

Или лучше создать новый метод?
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы