|
|
|
| Всем привет. Мучаюсь над составлением запроса к БД движка phpbb2. Ставлю мод glance. Немного переделываю под себя. Но вот мучаюсь с выводом имени автора, который создал тему и выводом имени автора последнего сообщения.
Запрос такой:
// Getting recent topics
$sql = 'SELECT t.topic_id, t.topic_title, t.topic_views,t.topic_replies, t.topic_last_post_id, p.post_time FROM ' .
TOPICS_TABLE . ' AS t, ' . POSTS_TABLE . ' AS p ' .
'WHERE t.forum_id NOT IN (' . $glance_ignore . ') ' .
'AND p.topic_id = t.topic_id ' .
'AND p.post_id = t.topic_last_post_id ' .
// AND t.topic_type <> " . POST_ANNOUNCE . "
'AND t.topic_moved_id = 0 ' .
'ORDER BY t.topic_last_post_id DESC ' .
'LIMIT ' . $glance_num_recent;
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, "Could not query latest topic information", "", __LINE__, __FILE__, $sql);
$latest_topics = array();
while ( $topic_row = $db->sql_fetchrow($result) )
{
$topic_row['topic_title'] = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_row['topic_title']) : $topic_row['topic_title'];
$latest_topics[] = $topic_row;
}
$db->sql_freeresult($result);
|
Как мне переделать запрос, чтобы имя автора темы и имя автора последнего сообщения передавались сюда:
$topic_author = ( $latest_topics[$i]['user_id'] != ANONYMOUS ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $latest_topics[$i]['user_id']) . '">' : '';
$topic_author .= ( $latest_topics[$i]['user_id'] != ANONYMOUS ) ? '</a>' : '';
$last_post_author = ( $latest_topics[$i]['id2'] == ANONYMOUS ) ? ( ($latest_topics[$i]['post_username2'] != '' ) ? $latest_topics[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $latest_topics[$i]['id2']) . '">' . $latest_topics[$i]['user2'] . '</a>';
|
Кто-нибудь раньше работал с phpbb2? Помогите с запросом, пожалуйста. | |
|
|
|
|
|
|
|
для: hejioshin
(09.08.2009 в 16:39)
| | немного не по теме!
я вообще в 1 раз слышу phpbb2 это что такое??=)))) | |
|
|
|
|
|
|
|
для: FlamySnake
(09.08.2009 в 21:26)
| | если тебе нужно, только лишь запрос для вывода, то это те поможет выборка:
$sql='SELECT * FROM themes';
дальше я делаю как в просто php:
$sql_q=mysql_query($sql);
$sql_r=mysql_fetch_array($sql_q);
-------------------------------------------------
функция mysql_fetch_array вернула ассоциативный массив со значениями всех полей в таблице 'themes'
например, если те нужно получить значение поля "автор"
echo 'Автор: '.$sql_r['author'];
а чтобы перейти на 1 ряд ниже, надо ещё раз сделать $sql_r=mysql_fetch_array($sql_q)
вот как по всем рядам пробегаться можно:
$sql_q=mysql_query($sql);
$sql_r=mysql_fetch_array($sql_q);
if (!$sql_r)
exit('Ошибка запроса!');
else{
do{
echo 'Автор: '.$sql_r['author'];
}
while($sql_r=mysql_fetch_array($sql_q));
}
|
а воот если те нужно узнать кто последний добавил!
то:
вот какой запрос!
узнаём сколько всего записей в таблице:
$sql_r=mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM themes"))
получаем последнюю запись, но нужно иметь поле Id c AUTO_INCREMENT
$sql_r1=mysql_fetch_array(
mysql_query("SELECT * FROM themes WHERE id=".$sql_r[0]));
всё!=) | |
|
|
|