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