Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите составить запрос к БД phpbb2
 
 автор: hejioshin   (09.08.2009 в 16:39)   письмо автору
 
 

Всем привет. Мучаюсь над составлением запроса к БД движка 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? Помогите с запросом, пожалуйста.

  Ответить  
 
 автор: FlamySnake   (09.08.2009 в 21:26)   письмо автору
 
   для: hejioshin   (09.08.2009 в 16:39)
 

немного не по теме!

я вообще в 1 раз слышу phpbb2 это что такое??=))))

  Ответить  
 
 автор: FlamySnake   (09.08.2009 в 21:39)   письмо автору
 
   для: 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]));

всё!=)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования