Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Вывод фото отправителя в списке личных сообщений

Вывод фото отправителя в списке личных сообщений


     15.03.2012    персональное сообщение, аватарка    Все вопросы » Хаки    4709

вопрос
Редактировал pm.php

Взял :

if( $user ) $row = $db->super_query( "SELECT name, pm_all, user_group FROM " . USERPREFIX . "_users where user_id = '$user'" );
        elseif( $username != "" ) $row = $db->super_query( "SELECT , name, pm_all, user_group FROM " . USERPREFIX . "_users where name='$username'" );


Заменил на :

if( $user ) $row = $db->super_query( "SELECT foto, name, pm_all, user_group FROM " . USERPREFIX . "_users where user_id = '$user'" );
        elseif( $username != "" ) $row = $db->super_query( "SELECT foto, name, pm_all, user_group FROM " . USERPREFIX . "_users where name='$username'" );


Далее после :

$tpl->set( '{author}', $row['name'] );


Добавил:

$tpl->set( '{foto}', $row['foto'] );



В итоге показывает только один аватар кого нить пользователя у всех сообщений (
В чем моя ошибка ?!

Ответил: Ae en Chalune


Попробуй user id в запрос вставить.

SELECT user_id, foto, name, etc..

7 комментариев

rashpil
Эксперт

rashpil - 16 марта 2012 00:07 -

В конце цикла обнуляй переменную с фоткой unset($row['foto']);

rashpil
Эксперт

rashpil - 16 марта 2012 10:33 -

Что-то я не внимательно посмотрел на ваш код) Тут вот какое дело, эти запросы исполняются не на странице со списком сообщений, а на странице вывода конкретного сообщения от конкретного пользователя. Нужно искать другой запрос и его переписывать

promax
Юзер

promax - 16 марта 2012 14:41 -

Есть другие запросы , но они выводятся из таблицы _pm

promax
Юзер

promax - 16 марта 2012 16:19 -

Делал так :

$sql = "SELECT pm.subj, pm.text, pm.user_from, pm.id , users.foto FROM " . PREFIX . "_pm as pm, " . PREFIX . "_users as users WHERE pm.user_from=users.name AND pm.user = '$member_id[user_id]' AND pm.folder = 'inbox' ORDER BY pm.pm_read , pm.date DESC ";


все равно выводит аватар первого пользователя *

rashpil
Эксперт

rashpil - 18 марта 2012 01:38 -

А вот это зачем? оО

AND pm.user = '$member_id[user_id]'


В части "условия" в запросе нужно было просто связать ключи. При таком условии он вообще должен отдать входяшие сообщения пользователю от самого же себя (Что по сути неприменимо). Удалите это условие из кода и всётаки попробуйте обнулять переменную с именем авы в конце цикла. И дам маленький совет: прежде чем экспериментировать с запросами чей результат не однозначен, лучше попробуйте этот же запрос исполнить в PhpMyAdmin`е и убедится в том что он составлен правильно и отдаёт нужные результаты. А уже потом совать его в php

promax
Юзер

promax - 18 марта 2012 10:39 -

Цитата: rashpil
AND pm.user = '$member_id[user_id]'


так это и в оригинале есть , я просто добавил еще одну таблицу belay

promax
Юзер

promax - 18 марта 2012 11:30 -

Кстате все работает :

$sql = "SELECT pm.subj, pm.text, pm.user_from, pm.date, pm.id ,pm.pm_read, users.user_id, users.foto FROM " . PREFIX . "_pm as pm, " . PREFIX . "_users as users WHERE pm.user_from=users.name AND pm.user = '$member_id[user_id]' AND pm.folder = 'inbox' ORDER BY pm.pm_read , pm.date DESC ";



if ($row['foto'] !== "")$foto = "{$config['http_home_url']}uploads/fotos/{$row['foto']}"; else $foto = "{$config['http_home_url']}templates/{$config['skin']}/images/noavatar.png";

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх