Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][MySQL][PHP]Menu + subMenu
elldiablo
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 30.05.2009

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


Witam,

Potrzebuje pobrać z bazy danych dwie tabele, które połączone są kluczem (id) i wyświetlić menu w smartach.

  1. public function getMainMenu() {
  2. $result = DB::Execute("SELECT * FROM main_menu");
  3. echo '<ul>';
  4. foreach ($result as $key) {
  5. echo '<li>'.$key->menu_title;
  6. $result2 = DB::Execute("SELECT * FROM main_content WHERE cont_id_menu = '".$key->menu_id."' ");
  7. foreach ($result2 as $keys) {
  8. echo '<ul><li>'.$keys->cont_title.'</li></ul>';
  9. }
  10. echo '</li>';
  11. }
  12. echo '</ul>';
  13. }


W ten sposób wszystko działa i jest dobrze wyświetlane. W pliku php wyświetlane jest menu:
  1. $tools->getMainMenu();


(IMG:http://odzyskajsrodowisko.pl/media/print1.JPG)

Teraz to samo menu chciałbym wyświetlić w pliku smarty a nie w pliku php.

Jak mam zmienić zapytanie do bazy i jak zrobić pętle foreach w pliku index.tpl


Z góry dziękuję za pomoc,
Jacek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze: zrobiłeś to w najgorszy możliwy sposób. Nie robi się zapytań w pętli, bo zamulasz niemiłosiernie bazę.
Tu opisałem problem:
http://nospor.pl/grupowanie-wynikow.html

Po drugie:
Cytat
Jak mam zmienić zapytanie do bazy i jak zrobić pętle foreach w pliku index.tpl
Smarty służy do wyświetlania danych a nie ich generowania.
Do pliku smarty masz przekazać tablicę, która reprezentuje twoje menu i na podstawie tej tablicy masz generować menu w smarty.
Jak się przyjrzysz mojemu artowi, do którego cię odesłałem, to tam zobaczysz, że najpierw właśnie generuję tablicę, a dopiero potem na jej podstawie wyświetlam menu. Akurat menu wyświetlam w czystym php, ale bez znaczenia. Ty tę tablicę masz przekazać do szablonu smarty i w nim generować to menu.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 18:39