Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] wyświetlanie danych z dwóch tabel, rekordy z drugiej uzależnione od pierwszej
soon
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2007

Ostrzeżenie: (0%)
-----


Witam, jestem początkującym użytkownikiem smarty i opornie mi to wchodzi smile.gif

Posiadam 2 tabele, jedną z newsami, drugą z kategoriami. Gdzie w tabeli "news" w kolumnie "category" zapisane są liczby od 1 do 7 odpowiadające kategorią zapisanym w tabeli categories.


template
  1. <a href="index.php?page=show_link&link_id={$db_result[id].id}"><h2>{$db_result[id].title}</h2></a>
  2. dodano: <a href="">{$db_result[id].date|date_format:"%d-%m-%Y"}</a>, dodał: <a href="">{$db_result[id].author}</a>, kategoria: <a href="">{$db_result_cat[id].name}</a>


zapytania
  1. <?
  2. $result = $db->set_query('SELECT * from tpl_news WHERE id = ' . $_GET['link_id'] . '');
  3. $result_categories = $db->set_query('SELECT * from tpl_categories WHERE id = ' . $db_result[id].id . '');
  4. $smarty->assign_by_ref('db_result', $result);
  5. $smarty->assign_by_ref('db_result_cat', $result_categories);
  6. ?>


Jak mam zrobić żeby wyświetlało nazwę kategorii, której id jest zapisane w kolumnie category w tabeli news?

Wiem, że pokazane przeze mnie fragmenty kodu nie mają prawa działać, ale nie wiem jak je napisać.

Proszę o pomoc.

Ten post edytował soon 2.03.2008, 20:57:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Radze zapoznać sie głębiej z SQLem z poleceniem JOIN. Nie ma po co wykonywać dwóch zapytań, a i będzie to łatwiej obrabiać.
Go to the top of the page
+Quote Post
soon
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2007

Ostrzeżenie: (0%)
-----


hmm problem w tym, że nie wiem jak to w templates wyświetlić.

mam powiedzmy
  1. <?php
  2. $result_categories = $db->set_query('SELECT name FROM tpl_categories WHERE id IN (SELECT category FROM tpl_news)');
  3. ?>


i jak to zainicjować w *tpl?


-----
EDIT:

uporałem się z tym jakoś:
  1. <?php
  2. $result = $db->set_query('SELECT * from tpl_news JOIN tpl_categories ON tpl_categories.id = tpl_news.categ
    ory ORDER BY '
    .$sortowanie.' DESC LIMIT '.$page_min.','.$page_max.' ');
  3. ?>


Czy takie zapytanie jest według was poprawne?

Ten post edytował soon 2.03.2008, 21:45:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:13