Coś mi nie wychodzi z tym Smarty
Bardzo proszę o pomoc jak rozwiązać ten problem by druga pętla ładowała za każdym razem ponownie dane z podkategorii.
Tabela MySql wygląda tak:
[sql]
--
-- Struktura tabeli dla `kategorie`
--
CREATE TABLE `kategorie` (
`id_kategorii` int(11) NOT NULL auto_increment,
`nazwa_kategorii` varchar(40) NOT NULL default '',
PRIMARY KEY (`id_kategorii`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
--
-- Zrzut danych tabeli `kategorie`
--
INSERT INTO `kategorie` VALUES (1, 'Wiadomości');
INSERT INTO `kategorie` VALUES (2, 'Rozrywka');
INSERT INTO `kategorie` VALUES (3, 'Technologia');
INSERT INTO `kategorie` VALUES (4, 'Różne');
-- --------------------------------------------------------
--
-- Struktura tabeli dla `podkategorie`
--
CREATE TABLE `podkategorie` (
`id_podkategorii` int(11) NOT NULL auto_increment,
`id_kategorii` int(11) NOT NULL default '0',
`nazwa_podkategorii` varchar(40) NOT NULL default '',
PRIMARY KEY (`id_podkategorii`,`id_kategorii`)
) TYPE=MyISAM AUTO_INCREMENT=13 ;
--
-- Zrzut danych tabeli `podkategorie`
--
INSERT INTO `podkategorie` VALUES (1, 1, 'Polityk');
INSERT INTO `podkategorie` VALUES (2, 1, 'Sport');
INSERT INTO `podkategorie` VALUES (3, 1, 'Pogoda');
INSERT INTO `podkategorie` VALUES (4, 1, 'Kultura');
INSERT INTO `podkategorie` VALUES (5, 2, 'Muzyka');
INSERT INTO `podkategorie` VALUES (6, 2, 'Filmy');
INSERT INTO `podkategorie` VALUES (7, 2, 'Książki');
INSERT INTO `podkategorie` VALUES (8, 2, 'Imprezy');
INSERT INTO `podkategorie` VALUES (9, 2, 'Motoryzacja');
INSERT INTO `podkategorie` VALUES (10, 3, 'PC');
INSERT INTO `podkategorie` VALUES (11, 3, 'GSM');
INSERT INTO `podkategorie` VALUES (12, 4, 'Ciekawostki');
[/sql]
kod PHP
[php]
<?php
//Łaczy z baza
$wyniki_k = mysql_query ("SELECT * FROM kategorie");
//Pobieranie danych
while ($rekord_k = mysql_fetch_array ($wyniki_k)) {
$dane_k['id_kategorii'] = $rekord_k['id_kategorii']; // id kategorii
$dane_k['nazwa_kategorii'] = $rekord_k['nazwa_kategorii']; //Nazwa Kategorii
$dane_tablica_k[] = $dane_k;
}
//Łaczenie z baza
$wyniki_pk = mysql_query ("SELECT * FROM podkategorie");
//Pobieranie danych z bazy
while ($rekord_pk = mysql_fetch_array ($wyniki_pk)) {
$dane_pk['id_podkategorii'] = $rekord_pk['id_podkategorii']; // id podkategorii
$dane_pk['id_kategorii'] = $rekord_pk['id_kategorii']; // id kategorii
$dane_pk['nazwa_podkategorii'] = $rekord_pk['nazwa_podkategorii']; //Nazwa podategorii
$dane_tablica_pk[] = $dane_pk;
}
//Przekazywanie zmiennych do Smarty
$smarty -> assign('dane_k', $dane_tablica_k); //Dane Kategorie
$smarty -> assign('dane_pk', $dane_tablica_pk); //Dane Podkategorie
?>
[/php]
kod TPL
Kod: Zaznacz cały
{foreach item=dane_k from=$dane_k}
<div><b>{$dane_k.nazwa_kategorii}</b>:</div>
{foreach item=dane_pk from=$dane_pk}
{if $dane_pk.id_kategorii == $dane_k.id_kategorii}
<div> - {$dane_pk.nazwa_podkategorii}</div>
{/if}
{/foreach}
{/foreach}
Dziękuje z góy za każdą pomoc.
