Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/SMARTY] 2 Tablice.
Forum PHP.pl > Forum > Przedszkole
b4x
Witam mam taki problem,

Kombinuje na różne sposoby, ale nie wychodzi mi.


mam 2 tablice

$friends (friend_id | friend_login | friend_type | friend_status)

$friends_cats (id | lang_name | sub_cat | type)


W friends_cats mam nazwę "kategorii" znajomego. (czyli jego rodzaj)

w friends - trzymam znajomych.

  1. {section name=typeid loop=$friends_cats}
  2.  
  3. {$friends_cats[typeid].lang_name}
  4.  
  5. {/section}
  6.  
  7. {foreach from=$friends item=f}
  8.  
  9. {$f.friend_login}
  10.  
  11. {/foreach}


Ale to nie jest to czego potrzebuję sad.gif

Chciałbym aby wyświetliło dane w następującym formacie:


Przyjaciele ($friends_cats)

Pierwszy login (z $friends)

Drugi login (z $friends)


Znajomi ($friends_cats)

Kowalski (z $friends)

b4x (z $friends)


Czyli poprostu chciałbym wyświetlić kategorię i pod nią wszystkich znajomych przypisanych do niej.
Czy jest to w jakiś sposób możliwe w Smarty ? : )
m87
Najłatwiej byłoby inaczej utworzyć tablicę, w ten sposób żeby było:

Kod
$friends[0]['type'] => 'Przyjaciele'
$friends[0]['friends'][0]['id'] => 1
$friends[0]['friends'][0]['friend_login'] => 'Pierwszy login'
...
$friends[0]['friends'][1]['id'] => 2
$friends[0]['friends'][1]['friend_login'] => 'Drugi login'
...
$friends[0]['type'] => 'Znajomi'
$friends[0]['friends'][0]['id'] => 1
$friends[0]['friends'][0]['friend_login'] => 'Kowalski'
...
$friends[0]['friends'][1]['id'] => 2
$friends[0]['friends'][1]['friend_login'] => 'b4x'
...

itd.
Oczywiście to wymagałoby modyfikacji zapytań SQL - dla każdego friends_cats trzeba by wywołać zapytanie, które wybrałoby wszystkich którzy należa do tej kategorii. Ewentualnie przerobienie tych dwóch tablic na poziomie PHP.

Jak koniecznie chcesz to tak zostawić to jedyne wyjście w Smarty to coś takiego (rozumiem, że $friends.friend_type to jest id z $friends_cats):
Kod
{foreach from=$friends_cats item=cat}
    {$cat.lang_name}

    {foreach from=$friends item=friend}

        {if $friend.friend_type == $cat.id}
            {friend.login}
        {/if}

    {/foreach}

{/foreach}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.