Pobieram wszystkie artykuły które przynależą do jednej kategorii. Chciałbym przy nich też wyświetlać wszystkie tagi które są połączone z każdym z artykułów.
Chcę to rozwiązać korzystając z PDO za pomocą jednego zapytania.
Znalazłem rozwiązanie na wikibooks -> Obsługa relacji w PDO ale po zastosowaniu to nie chce za bardzo działać.
Co prawda podaje mi poprawny pierwszy tytuł artykułu wybranej kategorii ale dalej sypie błędami "niezdefiniowany index: title". Tak nie powinno się stać gdyż te niezdefiniowane indexy odnoszą się do innych artykułów innych działów niż ten który wybrałem. Czyli - wywala mi wszystko z bazy.
Oto mój przykład:
$articles = $m->s_theme_articles($this->idblogs, $_GET['idlinks'], 'byIdLinks'); // wypluwa te dane co w tablicy gdzie id kategorii = $_GET['idlinks'] while ($result = $articles->fetch()) { 'title' => $result['title'], 'day' => $result['day'], 'month' => $result['month'], 'year' => $result['year'], 'text' => $result['text'], ); } $stmt = $m->pdo->query('SELECT idarticles, name FROM tags NATURAL JOIN arti_tags ORDER BY idarticles'); while ($result = $stmt->fetch()) { 'name' => $result['name'] ); }
Potem do wyświetlenia stosuję ten przykład z wikibooks:
foreach($wynik as $w) { }
jest tylko wyświetlanie tytułu ale i tak w tym przykładzie sypie mi wszystko - nawet chce wyświetlić (a nie umie) te tytuły które nie należą do wybranej kategorii.
Czy jest sposób na to aby pobierało mi tylko wybrany artykuł z wybranej kategorii. W tej tablicy trzymię idartykułu, to może da się zmodyfikować pętlę poprzez dodanie indeksu równego id kategorii ? Podpowiem że id kategorii da się szybko wyciągnąć - jest to tablica globalna GET
Próbowałem też tak:
pole: name - nazwa taga
tabela: arti_tags - przechowywanie idartykułu i idtaga
tabela: tags - przechowywanie idtaga i nazwę taga
SELECT idarticles, title, DAY(creation_date) AS day, MONTH(creation_date) AS month, YEAR(creation_date) AS year, text, name FROM articles NATURAL JOIN arti_tags NATURAL JOIN tags WHERE (...) ORDER BY idarticles GROUP BY name
ale ten przykład mi wyświetli po jednym tagu który znajdzie jako pierwszy z każdego artykułu.
Jak mam to rozwiązać

Fajnie by było gdyby jakoś dało się to rozwiązać w PDO.
pozdrawiam.