Pobieranie ustawień

0

Witam, gdy staram się pobrać ustawienia z bazy mysql, i wyświetlić je w szablonie smarty, to nic się nie pokazuje w miejscu w którym powinno to być.
Pobieram w taki sposób:

$wynik=mysql_query("SELECT * FROM sklep_admin;"); 
$info=array();
while($row = mysql_fetch_assoc($wynik)) array_push($info,$row);

To pobiera mi wszystko dobrze, i gdy wyświetlam w tablicy to jest wszystko dobrze. Dane pokazują się w tablicy. Ale gdy próbuję wyświetlić to w Szablonie, to nic się nie pokazuję. Do szablonu wysyłam to w taki sposób:

$smarty->assign($info); 

Próbowałem na wszelkie sposoby wyświetlić pojedyńcze rekordy z bazy i nic. Czy może trzeba jakoś tą tablicę wcześniej rozdzielić zanim się wyśle do Smarty? Bo w tej bazie znajdują się ustawienia konfiguracyjne. I potrzeba mi wyświetlania ich zawartości pojedyńczo. Znajdują się tam dwie kolumny: nazwa i wartosc
Chcę wyświetlać tylko zawartość pola wartość.

0

a jak to potem w tym szablonie wyświetlasz ?

0

Próbowałem na różne sposoby,
{$info} - pokazywał się napis Array
{$info.okres1}
{$info.0}
{$info.0.wartosc}

0

{$zmienna} - to Ci wyświetla zmienną, w Twoim przypadku to tablica, dlatego "napis" Array.

Resztę zapisu nie wiem skąd wziąłeś... Do elementów tablicy odnosisz się przez: nazwa_tablicy[klucz].
Tutaj: http://pl.php.net/manual/pl/book.array.php masz to wszystko pięknie opisane.

edit: hmm, teraz już nie wiem czy dobrze zrozumiałem Twoje pytanie. Jeżeli pytasz o to w jaki sposób w Smartach wyświetlić elementy tablicy (przez iterację) to proszę: http://www.smarty.net/docsv2/en/language.function.foreach

0

Mi nie chodzi o wyświetlenie wszystkich pobranych rekordów, tylko tych które chcę. Ponieważ gdybym pobierał wszystkie rekordy pojedyńczo, to trochę jest według mnie zbędnych linijek kodu. Ponieważ są to ustawienia konfiguracyjne. Więc potrzebuję wyświetlenia ich pojedyńczo. A gdy pobieram rekordy pojedyńczo,

 $okress2=mysql_query("SELECT wartosc FROM sklep_admin WHERE nazwa='okres2';");
$okres2=array();
while($row = mysql_fetch_assoc($okress2)) array_push($okres2,$row);

I wyświetlam w Smarty tak:

 {$okres2.0.wartosc}

To jest wszystko dobrze. Wynik się wyświetla.

0
{$tablica[index]}

Jednak do wyświetlania tablic proponuje funkcje section
http://www.smarty.net/docsv2/en/language.function.section.tpl

0
zapalka121 napisał(a)

Do szablonu wysyłam to w taki sposób:

$smarty->assign($info); 

Wyciągnij wnioski:
http://www.smarty.net/docsv2/en/api.assign

Źle callujesz $smarty->assign.

0

Demonical Monk, zauważyłem ten błąd i zmieniłem, lecz nadal nie otrzymuję rezultatu którego oczekuję.
Sympatyk, próbuję w ten sposób:

{$info[okres1]}
{$info[0]}
{$info[wartosc]}

I otrzymuję pusty wynik. Tablicę wysyłam prawidłowo, ponieważ gdy wywołam:

 {$info}

To otrzymuję w rezultacie "Array".
A co do section, to chyba nie pomoże mi w tym problemie, ponieważ z tego co wiem to section jest podobny do foreach, lecz można w nim wyświetlać wyniki z wielu tablic oraz można wybrać ilość pętli itp. Oglądałem Video Tut o Smarty i tyle się dowiedziałem o section, jeśli jednak można pobrać nim pojedyńcze wyniki, to proszę cię powiedz jak :)

0

Pokaż swój kod, assign można wywołać z jednym argumentem tylko jeśli podajesz w nim tablicę asocjacyjną, np.:

$smarty->assign(
                                       array(
                                                     'imie' => 'Jan',
                                                     'nazwisko' => 'Kowalski'
                                              )
);

I wtedy pod {$imie} będzie Jan, a pod {$nazwisko} wartość Kowalski. Jeśli przypinasz pojedynczą zmienną musisz opisać nazwę:

$smarty->assign('info', $info);

Wywodzi się to z tego, że kiedy podajesz zmienną $info do funkcji, to dostanie ona jej zawartość, ale nie będzie znała nazwy - czyli nie ma jak wywnioskować jaką ty chcesz nazwę.

0

Kodu całego nie podam, ponieważ jest go dość dużo, i nie odgrywa żadnej roli w tym problemie, podam wycinki kodu które są związane z tym.
Na początku pobieram ustawienia z tabeli:

$wynik=mysql_query("SELECT * FROM sklep_admin;"); 

Następnie to:

$info=array();
while($row = mysql_fetch_assoc($wynik)) array_push($info,$row); 

I na końcu wysyłam do szablonu:

$smarty->assign('info',$info); 

W szablonie staram się wyświetlić to w taki sposób:

<br />
	Wynik 1: {$info[0].wartosc} <br />
	Wynik 2: {$info[0]} 

Próbuję na kilka sposobów z nadzieją, że jakoś się uda, ale niestety nie udaje się.

Tak wygląda tabela sklep_admin w bazie danych:
user image

Edit: Pomoże ktos?

0

A może

{$info.0.wartosc}

.. ?
Użyj pętli do wyświetlenia danych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1