Добрый вечер, уважаемые форумчане, и профессионалы коддинга Передо мной встала задача вывести посетителю сайта данные из двух разных таблиц, а именно в одной таблице содержится информация по последним комментариям [ films_comment ] , а другая таблица это пользователи сайта [ user ] Суть: Пользователь пишет комментарий к фильму, он заносится в таблицу [ films_comment ] далее, мне нужно вывести текст на главную страницу сайта в раздел [ Последние комментарии ] Текст я вывожу нормально, но аватарку прикрепить не могу, т.к она берется из таблицы user Вопрос: как сделать что бы выводились последние комментарии например 5 последних, + что бы исходя из id того кто опубликовал, бралась информация из таблицы user об аватарке. Описал тупо, но уже не знаю что делать ( Вот готовый код, тут почему то все выводится нормально Код (Text): <div class="text_title">Комментарии к фильму</div> <div class="films_comment"> <? $user_films_comment = mysql_query( "SELECT comms, iduser, date FROM films_comment WHERE ident = '" . $get_films_row['id'] . "' ORDER BY date DESC LIMIT 10" ); while ( $user_films_comment_row = mysql_fetch_array( $user_films_comment ) ) { $info_user_comment = mysql_fetch_array( mysql_query( "SELECT id, avatar, username FROM user WHERE id = '" . $user_films_comment_row['iduser'] . "' LIMIT 1" ) ); /*---формируем дату сообщения---*/ $month = array( 'янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек' ); if ( date( 'd.m.Y', $user_films_comment_row['date'] ) == date( 'd.m.Y', time() ) ) { $mess_time = 'сегодня в ' . date( 'H:i', $user_films_comment_row['date'] ); } else if ( date( 'd.m.Y', $user_films_comment_row['date'] ) == date( 'd.m.Y', time() - 86400 ) ) { $mess_time = 'вчера в ' . date( 'H:i', $user_films_comment_row['date'] ); } else { $mess_time = ( int ) date( 'd', $user_films_comment_row['date'] ) . ' ' . $month[( int ) date( 'm', $user_films_comment_row['date'] ) - 1] . ' ' . date( 'Y', $user_films_comment_row['date'] ) . ' в ' . date( 'H:i', $user_films_comment_row['date'] ); } ?> <div class="wrap_in_mess"> <div style="width: 40px; text-align: center; float: left;"><img class="avatar" width="30" height="30" alt="" src="<?=ROOT?>/temp/avatar/<?=$info_user_comment['avatar']?>" /></div> <div class="in_mess_text wrap_walls_mess"> <div class="us_name_mess"><a href="/id<?=$info_user_comment['id']?>" class="a_box" target="_blank"><?=$info_user_comment['username']?></a></div> <?=$user_films_comment_row['comms']?> <div class="time_mess"><?=$mess_time?></div> </div> </div> <? } ?> </div> А мне нужно что бы было вот так, только ещё показывались аватарки из таблицы user Код (Text): <? if ( !isset( $_SESSION['iduser'] ) ) { $bestcom1 = mysql_query( "SELECT id FROM films_comment ORDER BY date DESC LIMIT 1" ); if ( mysql_num_rows( $bestcom1 ) != 0 ) { $i = 0; $get_bestcom1 = mysql_query( "SELECT ident, iduser, comms FROM films_comment ORDER BY date DESC LIMIT 5" ); while ( $bestcom = mysql_fetch_array( $get_bestcom1 ) ) { ?>
Решение найдено Код (Text): <? if ( !isset( $_SESSION['iduser'] ) ) { $bestcom1 = mysql_query( "SELECT id FROM films_comment ORDER BY date DESC LIMIT 1" ); if ( mysql_num_rows( $bestcom1 ) != 0 ) { $i = 0; $get_bestcom1 = mysql_query( "SELECT ident, iduser, comms FROM films_comment ORDER BY date DESC LIMIT 5" ); while ( $bestcom = mysql_fetch_array( $get_bestcom1 ) ) { $info_user_comment = mysql_fetch_array( mysql_query( "SELECT id, avatar, username FROM user WHERE id = '" . $user_films_comment_row['iduser'] . "' LIMIT 1" ) ); ?>
можно вытащить всё это одним запросом Код (Text): SELECT fk.id, fk.ident, fk.comms ,u.avatar, u.username FROM films_comment fk LEFT JOIN `user` u ON u.id=fk.iduser ORDER BY fk.date DESC LIMIT 5;
@WiNNeR, это типичная задача LEFT JOIN. --- Добавлено --- P.S. Не смешивайте взаимодействие с БД и разметку. Также используйте какое-нибудь современное расширение для работы с БД, например MySQLi