Przekazanie danych do templatki
: 22 października 2010, 10:44
Witam,
Nie wiem, czy temat we właściwym forum, ale ponieważ dotyczy modyfikacji moda phpbb3, więc problem opisuję tutaj.
Znam z grubsza metodę pobierania danych z baz i przekazywania ich do templatki html. Nie wiem natomiast jak pobrać dwa identyczne zestawy danych i zaprezentować je w jednej tabeli.
Zestaw danych przygotowany jest w index.php kawałkiem skryptu i przez tablicę 'temat' przekazany do html.
W html kod odpowiedzialny za wypełnienie tabeli z ostatnimi tematami na forum wygląda tak
Chciałbym do tablicy 'temat1' pobrać ostatnie tematy z np. jednego konkretnego subforum i wyświetlić je w jednej tabeli, ale w innych kolumnach. Zapytanie sql byłoby niemal identyczne jak w w/w przykładzie, jednak przy w/w kodzie w html dane te się nie wyświetlają.
Pytanie zatem następujące: jak w jednym "przebiegu" wyświetlić w jednej tabeli html dane z dwóch różnych tablic 'temat' i 'temat1'?
Nie wiem, czy temat we właściwym forum, ale ponieważ dotyczy modyfikacji moda phpbb3, więc problem opisuję tutaj.
Znam z grubsza metodę pobierania danych z baz i przekazywania ich do templatki html. Nie wiem natomiast jak pobrać dwa identyczne zestawy danych i zaprezentować je w jednej tabeli.
Zestaw danych przygotowany jest w index.php kawałkiem skryptu i przez tablicę 'temat' przekazany do html.
Kod: Zaznacz cały
// generuje ostatnie tematy
$sql = 'SELECT forum_id, topic_title, topic_replies, topic_last_poster_id, topic_last_poster_name, topic_poster, topic_first_poster_name, topic_last_post_id, topic_last_post_time FROM ' . TOPICS_TABLE . ' WHERE forum_id NOT IN (0,2,5,7,8,9,14,40,42,43,68,70,75,76,77,78,79,80,81) ORDER BY topic_last_post_id DESC LIMIT 0 , 10';
$result = $db->sql_query($sql);
while($row = mysql_fetch_array($result))
{
$sql1 = 'SELECT forum_name FROM ' . FORUMS_TABLE . ' WHERE forum_id = '.$row['forum_id'];
$result1 = $db->sql_query($sql1);
$row['forum_name'] = mysql_result($result1, 0);
$db->sql_freeresult($result1);
$out_forum = '[<a href="http://forgen.pl/forum/viewforum.php?f='. $row['forum_id'] .'" target="_blank">'. $row['forum_name'] .'</a>] ';
$out_title = '<a href="http://forgen.pl/forum/viewtopic.php?f='.$row['forum_id'].'&p='.$row['topic_last_post_id'].'#p'.$row['topic_last_post_id'].'" target="_blank">'. $row['topic_title'] .'</a>';
$out_poster = ' [<a href="http://forgen.pl/forum/memberlist.php?mode=viewprofile&u='. $row['topic_last_poster_id'] .'" target="_blank">'. $row['topic_last_poster_name'] .'</a>]';
$out_post_date = date("d-m-Y, H:i",$row['topic_last_post_time']);
$template->assign_block_vars('temat', array(
'OUT_FORUM' => $out_forum,
'OUT_TITLE' => $out_title,
'OUT_POSTER' => $out_poster,
'OUT_DATA' => $out_post_date,
));
}
$db->sql_freeresult($result);
Kod: Zaznacz cały
<table class="tablebg" width="100%" cellspacing="1" cellpadding="0" style="margin-top: 5px;">
<tr><th colspan="8"><p class="breadcrumbs"><a href="styles/subsilver2/template/last.php">OSTATNIE TEMATY > Zobacz więcej...</a></p></th></tr>
<tr>
<td class="row2"><p class="bread">Forum</p></td>
<td class="row2"><p class="bread">Temat</p></td>
<td class="row2"><p class="bread">Autor</p></td>
<td class="row2"><p class="bread">Data</p></td>
<td class="row2"><p class="bread">Forum</p></td>
<td class="row2"><p class="bread">Temat</p></td>
<td class="row2"><p class="bread">Autor</p></td>
<td class="row2"><p class="bread">Data</p></td>
</tr>
<!-- BEGIN temat -->
<tr>
<td class="row1">{temat.OUT_FORUM}</td><td class="row1">{temat.OUT_TITLE}</td><td class="row1">{temat.OUT_POSTER}</td><td class="row1">{temat.OUT_DATA}</td>
<td class="row1">{temat1.OUT1_FORUM}</td><td class="row1">{temat1.OUT1_TITLE}</td><td class="row1">{temat1.OUT1_POSTER}</td><td class="row1">{temat1.OUT1_DATA}</td>
</tr>
<!-- END temat -->
Pytanie zatem następujące: jak w jednym "przebiegu" wyświetlić w jednej tabeli html dane z dwóch różnych tablic 'temat' i 'temat1'?