Малко помощ за редакция на един мод за phbb2

pszone

Registered
Здравейте, имам нужда от малко помощ за редакцията на един мод за phpbb2. Този мод изкарва заглавията на темите, от които са последните 9 най-нови поста и ги зарежда в главната страница. Интересува ме как ставаше да извадя последните девет поста само от един форум (например Копувам/Продавам) от форума ми. Ето част от кода, където според мен трябва да бъде нанесена редакция.

Код:
........ 
$query = mysql_query("select * from phpbb_topics order by topic_last_post_id  desc limit 0,9"); 
while($rows = mysql_fetch_array($query)) 
{  
print "<tr><td onmouseover=this.style.backgroundColor=\"ECF0F6\" onmouseout=this.style.backgroundColor=\"\">"; 
print "<font color=\"#FF0000\">-</font>"; 
$forum = $rwz[forum_name]; 
$catid = $rwz[cat_id]; 
$qry2 = mysql_query("select * from phpbb_categories where cat_id='$catid'"); 
$rwz2 = mysql_fetch_array($qry2); 
$cat = $rwz2[cat_title]; 
if (strlen($rows[topic_title])>1){ 
printf("<a href=\"forums/viewtopic.php?t=%d\">%s %s</a> [%d]", $rows[topic_id], $cat, ((strlen($rows[topic_title])>42)?substr($rows[topic_title],0,42)."...": $rows[topic_title]), $rows[topic_replies]); 
} 
} 

?>
 

Admin

Registered
Трябва ми линк към форума за да видя id то на категорията.
 

Admin

Registered
И ще те помоля после да напишеш урок в категорията "php tricks"
точно с този код защото все ме питат как ще стане.
 

pszone

Registered
http://pszone.headoff.com/forums/index.php

При първа възможност ще кача статията ;) Ще те помоля да ми покажеш какво точно си променил, за да знам за напред. Предварително благодаря.
 

Admin

Registered
Първо ДЕМО:
http://admin.web-tourist.net/lasttopic.php

Показва само от php форума. :wink:


Обяснение:
Променяме заявката:
$query = mysql_query("select * from phpbb_topics order by topic_last_post_id desc limit 0,9");

която гласи :
Върни последните 9 реда от таблицата phpbb_topics като ги сортираш по
topic_last_post_id .

На нас обаче ни трябват последните 9 реда от таблицата но само ако в полето forum_id има записано числото 17.
Защото 17 е forum_id на избрания от тебе форум.
НА картинката виждаш как разбирам защо е 17.
pszone1.jpg


Ето и базата данни как изглежда:

pszone2.jpg


Следва малка промяна в заявката:
$query = mysql_query("select * from phpbb_topics where forum_id like '17' order by topic_last_post_id desc limit 0,9");


Много готин пример.
Все едно обясняваш на английски на базата данни какво точно трябва да прави.

where forum_id like '17' :)



Кода трябва да стане така:

Код:
$query = mysql_query("select * from phpbb_topics where forum_id like '17' order by topic_last_post_id  desc limit 0,9"); 
while($rows = mysql_fetch_array($query)) 
{  
print "<tr><td onmouseover=this.style.backgroundColor=\"ECF0F6\" onmouseout=this.style.backgroundColor=\"\">"; 
print "<font color=\"#FF0000\">-</font>"; 
$forum = $rwz[forum_name]; 
$catid = $rwz[cat_id]; 
$qry2 = mysql_query("select * from phpbb_categories where cat_id='$catid'"); 
$rwz2 = mysql_fetch_array($qry2); 
$cat = $rwz2[cat_title]; 
if (strlen($rows[topic_title])>1){ 
printf("<a href=\"forums/viewtopic.php?t=%d\">%s %s</a> [%d]", $rows[topic_id], $cat, ((strlen($rows[topic_title])>42)?substr($rows[topic_title],0,42)."...": $rows[topic_title]), $rows[topic_replies]); 
} 
} 

?>
 

pszone

Registered
Благодаря много за пълното обяснение. Между другото може да провериш този id на форума като видиш адреса от линка ...viewforum.php?f=17 без да влизаш в базата данни.
 

Admin

Registered
Да.
Точно затова ти исках линк към форума ти.
Аз не мога да разгледам базата ти данни.
 

skate

Registered
pszone каза:
Интересува ме как ставаше да извадя последните девет поста само от един форум (например Копувам/Продавам) от форума ми. Ето част от кода, където според мен трябва да бъде нанесена редакция.

Код:
<?php

$connection = mysql_connect("localhost", "user", "pass");
$db = mysql_select_db("dbname", $connection);

$query = mysql_query("select * from phpbb_topics where forum_id like '17' order by topic_last_post_id desc limit 0,10");
while($rows = mysql_fetch_array($query))
{
print "<tr><td onmouseover=this.style.backgroundColor="ECF0F6" onmouseout=this.style.backgroundColor="">";
print "<font color="#FF0000">-</font>";
$forum = $rwz[forum_name];
$catid = $rwz[cat_id];
$qry2 = mysql_query("select * from phpbb_categories where cat_id='$catid'");
$rwz2 = mysql_fetch_array($qry2);
$cat = $rwz2[cat_title];
if (strlen($rows[topic_title])>1){
printf("<a href="forums/viewtopic.php?t=%d">%s %s</a> [%d]", $rows[topic_id], $cat, ((strlen($rows[topic_title])>42)?substr($rows[topic_title],0,42)."...": $rows[topic_title]), $rows[topic_replies]);
}
}

?>
pszone1.jpg
Код:
$query = mysql_query("select * from phpbb_topics where forum_id like '17' order by topic_last_post_id desc limit 0,10");


В момента променената заявка ми зарежда само заглавията от форум-а ми с forum_id=17
 

pszone

Registered
За да не създавам нова тема, искам да попитам може ли същият код, който писах в първия пост да бъде преправен така, че да ми изкарва само последните създадени нови теми в дадена категория, а да не се определя от това коя е последно ъпдейтната (писано е ново мнение в тях). Предварително благодаря.
 

Горе