Создать ответ 
Добавление аватарок в форму добавления комментариев к темам
Автор Сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #1
Добавление аватарок в форму добавления комментариев к темам
В данной ветке рассматривается проблема добавления аватарок в нашей форме добавления комментариев к темам.

Данная проблема была специально выделена в отдельную тему форума из темы Ваша форма "Добавить комментарий к теме:", чтобы не путать посетителей основной ветки форума Ваша форма "Добавить комментарий к теме:"




Admin, скажите пожалуйста (я конечно уже этот вопрос Вам задавал, но ничего так и не получилось, вот и решил поинтересоваться вновь Big Grin ) как мне привязать аваторы к никнейму в сообщении? Функция отображения аватора под каждой авторизацией у пользователей вызывается простой функцией $_SESSION["user"]["photo"] (каждому пользователю показывается свой аватор на главной странице) - и как же вот сделать, что бы в каждом сообщении был аватор именно автора сообщения указанного в никнейме. Все необходимые данные для решения данной задачи с удовольствием предоставлю. Blush

[Изображение: kitchen-pro_12321.png]
(Последний раз сообщение было отредактировано 09.07.2012 в 01:00:16, отредактировал пользователь Incognito.)
08.07.2012 22:57:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #2
RE: Ваша форма "Добавить комментарий к теме:"
А то что я уже писал ранее в 32 сообщении данной ветки не помогло?

Если $_SESSION["user"]["photo"] содержит ссылку, то делайте так:
echo '<img src="'.$_SESSION[user][photo].'">';

Кстати, а как правильно писать аватарка или аваторка? Яндекс и Гугл автоматически исправляют на аватарка.
08.07.2012 23:23:34
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #3
Ваша форма "Добавить комментарий к теме:"
(08.07.2012 23:23:34)Admin писал(а):  Если $_SESSION["user"]["photo"] содержит ссылку, то делайте так:
echo '<img src="'.$_SESSION[user][photo].'">';
Так ведь он таким образом на все сообщения наклеивает аватор моего аккаунта в системе и никакой привязки к никнейму в сообщении этот код не делает, нужно как то из mysql базы для каждого сообщения выводить аватор автора комментария.

В моей системе авторизации есть php файл который выводит список всех пользователей, так вот, в этом списке напротив каждого никнейма выводиться свой аватор, может быть это как то поможет решить данный вопрос, вот участок кода который выводит все эти штуки:

PHP код:
<table cellspacing="0" cellpadding="0" class="center_table">
<
tr>
<
td valign="top">
<
table>
<
tr>
<
td width='100px'><strong>Аватарка</strong></td>
<
td width='150px'><strong>Имя</strong></td>
<
td width='150px'><strong>E-mail</strong></td>
<
td width='150px'><strong>WwW</strong></td>
<
td width='150px'><strong>ICQ</strong></td>
</
tr>
</
table>
<?
$res mysql_query ("SELECT 
name,
email,
url,
cq,
photo
FROM users 
WHERE 1 ORDER BY id_user"
);
while  (
$myrow mysql_fetch_array($res)) {
echo 
"<table class='user_listing'>
<tr>
<td width='100px'><img src='"
.$myrow['photo']."' width='64' height='64'/></td>
<td width='150px'>"
.$myrow["name"]."</td>
<td width='150px'>"
.$myrow["email"]."</td>
<td width='150px'><a href='"
.$myrow["url"]."' target='_blank' class='link_post'>".$myrow["url"]."</a></td>
<td width='150px'>"
.$myrow["icq"]."</td>
</tr>
</table>"
;
}
?>

(08.07.2012 23:23:34)Admin писал(а):  Кстати а как правильно писать аватарка или аваторка? Яндекс и Гугл автоматически исправляют на аватарка.

Да пишут похоже кому как вздумается, словечко то заграничное. )))
Ну вот как на этом же форуме в каждом посте выводится именно аватарка автора сообщения, а не какого то другого. )))
P.S... Если понадобиться могу посильно отблагодарить, как пожелаете. Ну очень уж хочется что бы аваторки показывал скрипт. Smile
(Последний раз сообщение было отредактировано 08.07.2012 в 23:43:31, отредактировал пользователь Incognito.)
08.07.2012 23:29:56
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #4
RE: Ваша форма "Добавить комментарий к теме:"
Теперь вроде понял.
В коде вывода комментариев после строк
Код:
for ($n=1; $n<=$number; $n++) {
$comments=mysql_fetch_array($result);

добавляем запрос к MySQL для поиска нужной аватарки:
Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1");
$myrow = mysql_fetch_array($res)

Все вроде, теперь для вставки аватарки используем:
Цитата:echo "<img src='".$myrow['photo']."' width='64' height='64'/>"

Работать будет только внутри цикла вывода комментариев for ($n=1; $n<=$number; $n++) { . . . }, т.к. запрос для каждого аватара идет внутри цикла (это на случай если решите протестировать отдельно от вывода комментариев).
08.07.2012 23:48:29
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #5
RE: Ваша форма "Добавить комментарий к теме:"
Спасибочки, сейчас попробую, уффф - у меня аж сердце заколотилось. )))

Сделал вот так:

PHP код:
$res mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1");
 
$myrow mysql_fetch_array($res); 

и

PHP код:
echo '<tr><td width="100"><img src="'.$myrow[photo].'">'

но изображение аваторки не выводится, может нужно что то ещё дописать или дополнить ? ))
(Последний раз сообщение было отредактировано 09.07.2012 в 00:15:39, отредактировал пользователь Incognito.)
08.07.2012 23:57:02
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #6
RE: Ваша форма "Добавить комментарий к теме:"
Попробуйте еще так: echo '<img src="'.$myrow[0].'">';

Внутри цикла после
Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1");
$myrow = mysql_fetch_array($res);
поочередно попробуйте выводить на экран следующие переменные: $comments[login], $myrow[0], $myrow[photo] для того чтобы узнать есть ли в них что-то и где затык.

Так же попробуете указать никнейм напрямую и вывести аватарку
Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='Incognito' LIMIT 1");
$myrow = mysql_fetch_array($res);
echo '<img src="'.$myrow[photo].'">';

Если не поможет, то посмотрите, в каком виде в базе записаны никнеймы.
09.07.2012 19:10:31
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #7
Ваша форма "Добавить комментарий к теме:"
(09.07.2012 19:10:31)Admin писал(а):  Попробуйте еще так: echo '<img src="'.$myrow[0].'">';

Внутри цикла после
Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1");
$myrow = mysql_fetch_array($res);
поочередно попробуйте выводить на экран следующие переменные: $comments[login], $myrow[0], $myrow[photo] для того чтобы узнать есть ли в них что-то и где затык.

Так же попробуете указать никнейм напрямую и вывести аватарку
Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='Incognito' LIMIT 1");
$myrow = mysql_fetch_array($res);
echo '<img src="'.$myrow[photo].'">';

Если не поможет, то посмотрите, в каком виде в базе записаны никнеймы.

Спасибо, сейчас попробую как Вы сказали!

Вроде что то начинает вырисовываться, скажите а как именно вот эту строку строку: $res = mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1"); можно подключить к другой базе mysql потому что значение $comments[login] выдаёт никнейм , а вот $myrow[photo] выдаёт пустое значение (как будто не там смотрит столбец photo).
(Последний раз сообщение было отредактировано 09.07.2012 в 20:17:48, отредактировал пользователь Incognito.)
09.07.2012 19:53:28
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #8
RE: Ваша форма "Добавить комментарий к теме:"
А у Вас на сайте несколько разных баз MySQL? Может проще перенести все таблицы в одну базу и проблем не будет?

Вставьте следующий код:
Код:
$res = mysql_query ("SELECT * FROM users");
$number = mysql_num_rows($result);
echo $number;
Тогда мы узнаем, сколько записей всего в таблице users.
Если больше 0, значит, подключились правильно и надо искать причину.

Если 0, то пробуем подключиться к другой базе (если она есть):

Код:
$res = mysql_query ("SELECT photo FROM users WHERE name='".$comments[login]."' LIMIT 1", $link);

где $link - указатель на БД (когда вы подключаетесь, вы вводите $link = mysql_connect( . . . ) ).
09.07.2012 20:50:27
Найти все сообщения Цитировать это сообщение
Incognito Не на форуме
Лейтенант
*

Сообщений: 138
У нас с: Nov 2011
Сообщение: #9
RE: Ваша форма "Добавить комментарий к теме:"
Ура!!! Нашёл интересный способ! Что бы Вас не мучить больше с базами - у меня их аж 5 штук на проекте, видимо поэтому будут сложности.

Во общем работает на ура вот эта строчка:

PHP код:
echo '<tr><td width="100"><img src="photo/'.$comments[login].'.jpg">'

(все аватарки хранятся в папке photo у каждой аваторы имя файла совпадает с именем юзера - никнеймом).

Вопрос: как в эту строчку добавить все вот эти расширения:
".jpg", ".jpeg", ".gif", ".bmp", ".png"

пробовал вот так - но не получается что то:
PHP код:
$extensions = array( ".jpg"".jpeg"".gif"".bmp"".png" );
echo 
'<img src="photo/'.$comments[login].'.$extensions">'
скорей всего это не правильно, писал интуитивно...

И второй вопрос - как можно сделать так что если "строчка" не находит аватор совпадающий по никнейму то подставлял бы null.gif из этой же папки???
09.07.2012 20:59:13
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #10
RE: Ваша форма "Добавить комментарий к теме:"
Я бы все-таки посоветовал попытаться сделать подключение к другой БД (с использованием указателя на БД, как написано выше), тогда бы отпала необходимость подставлять расширение (для чего потребуется писать функцию поиска файлов в папке и вытаскивания из них расширения).
Да и в том случае, если путь на аватарку не найден, MySQL запрос вернул бы пустой результат, который бы мы и меняли на null.gif.
09.07.2012 21:18:22
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru