Вытащить ссылку на аватар пользователя по ID из DB

Автор VitaL, 22 февраля 2009, 19:04:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

VitaL

Как вытащить ссылку на аватар пользователя по ID bp из базы данных...

Можете плз написать команду на SQL  laugh

VitaL


Drakonsa

SELECT `avatar` FROM `smf_members` WHERE `ID_MEMBER`='ID_пользователя'

Но это если аватар выбираеться из списка на сервере или указываеться линк на внешний источник. Если Аватар заканчиваеться на сервер как attach то там по другому.

VitaL

Спасибо

Цитата: Drakonsa от 24 февраля 2009, 19:10:08
Но это если аватар выбираеться из списка на сервере или указываеться линк на внешний источник. Если Аватар заканчиваеться на сервер как attach то там по другому.

Именно это я и хотел узнать...

vooon

Скорее всего аватар хранится в таблице attachments:

SELECT filename FROM ".$smf_db_prefix."attachments WHERE attachmentType='0' AND ID_MEMBER ='ID_пользователя' LIMIT 1;

VitaL

Как интересно скрипт форума вытаскивает аватары в сообщения форума, просто нужне код чтоб вытащить на портале аватары юзеров

Alex K

#6
можно без запроса к базе обойтись, тупо пошарив аватару в папке atachments...
как-то так:
<?php
$dirn
='../forum/attachments/avatar_';

$blank='../forum/attachments/blank.gif';

$userid='12';

$profile='../forum/index.php?action=profile;u=';

$profilelink=$profile.$userid;

$avatarlinkjpg=$dirn.$userid+'.jpg';

$avatarlinkpng=$dirn.$userid+'.png';

if (
file_exists($avatarlinkjpg)) {
   
$avatarlink=$avatarlinkjpg;
} else {
  if (
file_exists($avatarlinkpng)) {
     
$avatarlink=$avatarlinkpng;
  };
 
$avatarlink=$blank;
};

echo
"<a href=$profilelink><img src='$avatarlink'></a>";

?>

на сколько я понял, аватары хранятся в папке /forum/attachments/ в виде картинок avatar_XX.jpg или avatar_XX.png, где XX - ID юзера (переменная $userid). проверяем, существует ли файл jpg, затем - png (еще может быть в гифе). если ни того, ни другого нет - подсовываем какую-нибудь картинку "blank.gif". выводимый аватар - ссылка на профиль юзера.

Drakonsa

Запрос в базу на вытаскивание адреса на аватар, если результат путой, то вытащить из другой таблицы где имя аттача LIKE чет там.

digger®

Дополнительная функция для SSI.php, возвращает инфу о пользователях, в том числе аватар.


function ssi_memberInfo($member_ids = array()) {
global $context, $settings, $scripturl, $txt, $db_prefix, $user_info;
global $modSettings, $smcFunc, $memberContext;

$query_members = array();

 if (!empty(
$member_ids))
 {
   
$member_ids = is_array($member_ids) ? $member_ids : array($member_ids);

   
// Load the members.
   
loadMemberData($member_ids);

 foreach ($member_ids as $member)
 {
 // Load their context data.
 if (!loadMemberContext($member))
continue;

// Store this member's information.
$query_members[$member] = $memberContext[$member];
   }
return
$query_members;
 }
}