Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pobieranie rekordu
Chelo
post
Post #1





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


Witam wszystkich. Piszę modyfikacje do PA i mam problem z jednym skryptem. Otóz mam przykładowo takie coś:

  1. $sql3 = "SELECT * FROM phpbb_tabele WHERE gdzie=0 ORDER BY id ASC";
  2. $result3 = $db->sql_query($sql3);
  3. while($row3 = $db->sql_fetchrow($result3)){
  4. print '<table width="100%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline"><tr><th width="100%" align="center" class="row1">' . $row3['nazwa'] . '</th></tr>';
  5. print '<tr><td class="row1">' . $row3['tresc'] .'</td></tr><br>';
  6. }


Tak jest wszystko ok. Ale jak zastąpić while zeby działało tak samo w pliku .tpl questionmark.gif?

czyli kod trzeba zmienić tak:

  1. $sql3 = "SELECT * FROM phpbb_tabele WHERE gdzie=0 ORDER BY id ASC";
  2. $result3 = $db->sql_query($sql3);
  3. while($row3 = $db->sql_fetchrow($result3)){
  4. $tabela1 = '<table width="100%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline"><tr><th width="100%" align="center" class="row1">' . $row3['nazwa'] . '</th></tr>';
  5. $tabela2= '<tr><td class="row1">' . $row3['tresc'] .'</td></tr><br>';
  6. $template->assign_vars(array(
  7. 'TABELA1' => $tabela1,
  8. 'TABELA2' => $tabela2
  9. )
  10. );
  11. }


Poźniej w pliku .tpl wywołam tak: {TABELA1}{TABELA2} jednak wyświetli mi tylko raz... A w chcę by wydrukowało wszystko co tam się znajduję. Jak to zrobić?


proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
jinks
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.11.2008

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


Dzieje się tak, ponieważ nadpisujesz sobie te tabele przy każdym pobraniu rekordu, zrób coś takiego:

  1. $sql3 = "SELECT * FROM phpbb_tabele WHERE gdzie=0 ORDER BY id ASC";$result3 = $db->sql_query($sql3);
  2. while($row3 = $db->sql_fetchrow($result3)) {
  3.  
  4. $tabela1[]='<table width="100%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline"><tr><th width="100%" align="center" class="row1">' . $row3['nazwa'] . '</th></tr>';
  5.  
  6. $tabela2[]='<tr><td class="row1">' . $row3['tresc'] .'</td></tr><br>';
  7. }

a potem przypisz sobie pełne tabele do szablonu.

Ten post edytował jinks 7.09.2009, 18:18:18
Go to the top of the page
+Quote Post
zzeus
post
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Szablony stosuje się po to aby oddzielić kod php od html. Tak więc w php tworzysz tablice z wartościami i tą tablicę przekazujesz do pliku .tpl
  1. $sql3 = "SELECT * FROM phpbb_tabele WHERE gdzie=0 ORDER BY id ASC";
  2. $result3 = $db->sql_query($sql3);
  3. $_tempTable = array();
  4. while($row3 = $db->sql_fetchrow($result3)){
  5. $_tempTable[] = $row3;
  6. }
  7. $smarty->assign('tempTable', $_tempTable);

i później w szablonie robisz pętle
  1. {foreach from=$tempTable item=row}
  2. <tr><td>{$row.pole1}</td><td>{$row.pole2}</td></tr>
  3. {/foreach}


--------------------
Go to the top of the page
+Quote Post
Chelo
post
Post #4





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


nie działa co_jest.gif
Go to the top of the page
+Quote Post
zzeus
post
Post #5





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Co konkretnie nie działa ?


--------------------
Go to the top of the page
+Quote Post
Chelo
post
Post #6





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


Fatal error: Call to a member function assign() on a non-object in
Go to the top of the page
+Quote Post
Void
post
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

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


Błąd mówi, że wypadałoby najpierw utworzyć obiekt Smarty zanim zaczniesz go używać smile.gif
Go to the top of the page
+Quote Post
zzeus
post
Post #8





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


To był przykładowy kawałek kodu, a nie gotowa wstawka którą masz skopiować i wkleić do siebie i będzie działać.


--------------------
Go to the top of the page
+Quote Post
Chelo
post
Post #9





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


Możesz mnie bardziej naprowadzić? Bo nie za bardzo rozumiem
Go to the top of the page
+Quote Post
zzeus
post
Post #10





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Z jakiego systemu szablonów korzystasz ?


--------------------
Go to the top of the page
+Quote Post
Chelo
post
Post #11





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


Mod jest pisany do przema
Go to the top of the page
+Quote Post
zzeus
post
Post #12





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Nie znam tego forum, nigdy nic nie robiłem z nim.
Ale może inaczej, w którym miejscu pojawia się błąd ? Czy zapytanie do bazy danych się poprawnie wykonuje i zwraca wyniki do tablicy, czy problem jest dopiero w szablonie - tabelka z danymi się nie pojawia ?


--------------------
Go to the top of the page
+Quote Post
Chelo
post
Post #13





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


{foreach from=$tempTable item=row}

{/foreach}

Wyświetla mi te linijki co wyżej napisałem
Go to the top of the page
+Quote Post
pyro
post
Post #14





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(zzeus @ 8.09.2009, 14:13:24 ) *
Nie znam tego forum, nigdy nic nie robiłem z nim.
Ale może inaczej, w którym miejscu pojawia się błąd ? Czy zapytanie do bazy danych się poprawnie wykonuje i zwraca wyniki do tablicy, czy problem jest dopiero w szablonie - tabelka z danymi się nie pojawia ?


Cytat
Fatal error: Call to a member function assign() on a non-object in


Po co Ci wiedzieć gdzie jest błąd. Przecież czytać chyba umiesz. Błąd wyraźnie mówi, że użyto funkcji assign na nieobiekcie. O ile pamiętam to phpBB korzysta z własnego systemu szablonów (ale nie pamiętam dokładnie, mogę się mylić), a nawet jak korzysta ze Smarty to obiekt wcale nie musi się kryć pod zmienną `$smarty`


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
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: 21.08.2025 - 03:41