SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.06.2010 18:17:53

legion
Участник
Зарегистрирован: 27.06.2010
Сообщений: 2

Вывести имя пользователя из БД

Добрый день!

Прошу помощи в доделке такого кусочка кода


$get_comments = dbquery("SELECT * FROM ".DB_COMMENTS." WHERE comment_type='K' ORDER BY comment_datestamp DESC LIMIT 0,5");

echo "<table width='100%' class='tbl-border' cellpadding='0' cellspacing='1'>";
echo "<tr>";
echo "<td colspan='3' align='center' class='tbl2'><font size=2>".$locale['ab_043']."</font></td>";
echo "</tr>";

echo "<tr>";
echo "<td width='50%' class='tbl2'>".$locale['ab_044']."</td>";
echo "<td width='20%' class='tbl2'>".$locale['ab_046']."</td>";
echo "<td align='center' class='tbl2'>".$locale['ab_047']."</td>";
echo "</tr>";

    while ($last_comments = dbarray($get_comments))
    {

    $commented_books = dbarray(dbquery("SELECT * FROM ".DB_ATBOOKS." WHERE book_id='".$last_comments['comment_item_id']."'"));
    $comment_date = date("d.m.Y - G:i", $last_comments['comment_datestamp']);
    $comment_book_title = trimlink($commented_books['book_title'], 50);
    $comment_username = trimlink($last_comments['comment_name'], 30);

//$comment_username_name = $comment_username
    echo "<tr>";
    echo "<td width='60%' class='tbl1'><a href='".FUSION_SELF."?&bookid=".$commented_books['book_id']."'>".$comment_book_title."</a></td>";
    echo "<td class='comment-name'><a href='".BASEDIR."profile.php?lookup=".$comment_username."'>$comment_user</a></td>\n";
    echo "<td align='center' class='tbl1'>$comment_date</td>";
    echo "</tr>";

    }
echo "</table>";


Этот код должен выводить последние комментарии. Есть три таблицы - одна - с каталогом книг (DB_ATBOOK), вторая - с комментариями (DB_COMMENTS), третья - с базой пользователей (DB_USERS). В таблице с комментариями есть колонка comment_name, в которой указывается id пользователя оставившего комментарий. Туплю в вопросе как сделать так, чтобы переменная $comment_user выводила имя пользователя из таблицы USERS, соответствующего id'у, написавшего комментарий.
Надеюсь, что понятно описал проблему. Спасибо.

Неактивен

 

#2 27.06.2010 18:24:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вывести имя пользователя из БД

SELECT c.*, u.id FROM ".DB_COMMENTS." c JOIN DB_USERS u ON c.comment_name=u.id  WHERE comment_type='K' ORDER BY comment_datestamp DESC LIMIT 0,5

http://dev.mysql.com/doc/refman/5.1/en/join.html

Неактивен

 

#3 28.06.2010 18:52:40

legion
Участник
Зарегистрирован: 27.06.2010
Сообщений: 2

Re: Вывести имя пользователя из БД

Признаться я и сам давно кручусь около этой конструкции:

$comment_user = dbquery(
            "SELECT tcm.*, tcu.user_name FROM ".DB_COMMENTS." tcm
             LEFT JOIN "
.DB_USERS." tcu ON tcm.comment_name=tcu.user_id");


Кстати, мне и нужно вывести user_name (поэтому конструкция отличается немного от приведенной вами), но при таком раскладе выводится нечто странное, не имя, а     Resource id #nnn.
Какие могут быть соображения?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson