Skocz do zawartości

Problem z talicami w php


piotreek
 Udostępnij

Rekomendowane odpowiedzi

Witam

tworzę prosty skrypt do pobierania menu z tabeli mysql

taką mam strukturę bazy:

CREATE TABLE `cats` (
 `id` int(3) NOT NULL auto_increment,
 `cid` varchar(20) NOT NULL,
 `ctitle` varchar(128) NOT NULL,
 `link` varchar(20) NOT NULL,
 `title` varchar(128) NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin2 AUTO_INCREMENT=11 ;

i taki skrypt do pobierania tego:

$stmt = $pdo -> query('SELECT * FROM cats');
$leftmenu = array();
foreach($stmt as $row) {
   $leftmenu[$row['cid']]['title'] = $row['ctitle'];
 $leftmenu[$row['cid']]['dane'] = $row;
}
$stmt -> closeCursor();

w tpl mam kod który chciałbym aby mi to wszystko przetworzył na html

	
{foreach value=value from=$leftmenu}
	<h3>{$value[title]}</h3>
<ul>
   {foreach value=value2 from=$value[dane]}
			        <li><a href="/{$value2[cid]}/{$value2[link]}/">{$value2[title]}</a></li>
   {/foreach}
	</ul>
{/foreach}

i nie wiem czemu dostaje taki wynik:

<h3 class="tog">Filmy</h3>
	[list]
[*][url="https:///4/4/"]4[/url]


[*][url="https:///4/4/"]4[/url]

[*][url="https:///f/f/"]f[/url]

[*][url="https:///f/f/"]f[/url]

[*][url="https:///F/F/"]F[/url]

[*][url="https:///F/F/"]F[/url]

[*][url="https:///d/d/"]d[/url]


[*][url="https:///d/d/"]d[/url]

[*][url="https:///D/D/"]D[/url]

[*][url="https:///D/D/"]D[/url]
[/list]
		<h3 class="tog">Muzyk</h3>
	[list]
[*][url="https:///6/6/"]6[/url]


[*][url="https:///6/6/"]6[/url]

[*][url="https:///m/m/"]m[/url]

[*][url="https:///m/m/"]m[/url]

[*][url="https:///M/M/"]M[/url]

[*][url="https:///M/M/"]M[/url]

[*][url="https:///z/z/"]z[/url]


[*][url="https:///z/z/"]z[/url]

[*][url="https:///Z/Z/"]Z[/url]

[*][url="https:///Z/Z/"]Z[/url]
[/list]
		<h3 class="tog">Programy</h3>
	[list]
[*][url="https:///8/8/"]8[/url]


[*][url="https:///8/8/"]8[/url]

[*][url="https:///p/p/"]p[/url]

[*][url="https:///p/p/"]p[/url]

[*][url="https:///P/P/"]P[/url]

[*][url="https:///P/P/"]P[/url]

[*][url="https:///l/l/"]l[/url]


[*][url="https:///l/l/"]l[/url]

[*][url="https:///L/L/"]L[/url]

[*][url="https:///L/L/"]L[/url]
[/list]

print_r dla tablicy wygenerowanej przez skrypt daje coś takiego:

Array
(
   [filmy] => Array
       (
           [title] => Filmy
           [dane] => Array
               (
                   [id] => 4
                   [0] => 4
                   [cid] => filmy
                   [1] => filmy
                   [ctitle] => Filmy
                   [2] => Filmy
                   [link] => dvd
                   [3] => dvd
                   [title] => DVD
                   [4] => DVD
               )

       )

   [muzyka] => Array
       (
           [title] => Muzyk
           [dane] => Array
               (
                   [id] => 6
                   [0] => 6
                   [cid] => muzyka
                   [1] => muzyka
                   [ctitle] => Muzyk
                   [2] => Muzyk
                   [link] => zagraniczna
                   [3] => zagraniczna
                   [title] => Zagraniczna
                   [4] => Zagraniczna
               )

       )

   [programy] => Array
       (
           [title] => Programy
           [dane] => Array
               (
                   [id] => 8
                   [0] => 8
                   [cid] => programy
                   [1] => programy
                   [ctitle] => Programy
                   [2] => Programy
                   [link] => linux
                   [3] => linux
                   [title] => Linux
                   [4] => Linux
               )

       )

   [gry] => Array
       (
           [title] => Gry
           [dane] => Array
               (
                   [id] => 10
                   [0] => 10
                   [cid] => gry
                   [1] => gry
                   [ctitle] => Gry
                   [2] => Gry
                   [link] => konsole
                   [3] => konsole
                   [title] => Konsole
                   [4] => Konsole
               )

       )

)

więc wydaje mi się że problem tkwi w szablonie, z góry dzięki za pomoc, a może ktoś znajdzie lepszy sposób od mojego na prezentację menu

foot.gif

Programista PHP / sql www.grzelka.info

Odnośnik do komentarza
Udostępnij na innych stronach

zrobiłem

$stmt = $pdo -> query('SELECT * FROM cats');
 $leftmenu = array();
 foreach($stmt as $row) {
 $leftmenu[$row['cid']]['title'] = $row['ctitle'];
 $leftmenu[$row['cid']]['dane'] []= $row;  // tu brakowało []
 }
 $stmt -> closeCursor();

Edytowane przez piotreek

foot.gif

Programista PHP / sql www.grzelka.info

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności