Вытащить ссылку на аватар пользователя по 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;  }}  ?>