$username = $_SESSION['username'];
$result7=mysql_query ("SELECT id,avatar FROM users WHERE username='$username'");
$myrow7= mysql_fetch_assoc($result7);
printf ("<p><img src='img/avatars/%s' width='70' height='70'/></p>",$myrow7["avatar"]);
ну в этом случае аватар выводится возле первого сообщения, и только в том случае если пользователь онлайн, да и еще не соответствует комментарию, то есть я прокомментил что-то со своего аккаунта появился мой аватар, зашёл с другого аккаунта возле того сообщения другой аватар, помогите пожалуйста решить эту проблему, если можно обьясните как для тупых))) Всего доброго
Спустя 3 часа, 38 минут, 49 секунд (11.03.2010 - 07:54) kirik написал(а):
shmit
Так вам нужно вытягивать аватарку не того пользователя, который просматривает страницу, а того кто запостил сообщение. Тоесть переменная $username должна содержать имя автора сообщения (или его id - тогда запрос чутка поправить нужно).
Так вам нужно вытягивать аватарку не того пользователя, который просматривает страницу, а того кто запостил сообщение. Тоесть переменная $username должна содержать имя автора сообщения (или его id - тогда запрос чутка поправить нужно).
Спустя 15 минут, 43 секунды (11.03.2010 - 08:09) Семён написал(а):
Кирик правильно дал мысль от себя лишь добавлю:
В твоём случае выборка происходит из таблицы users, а в теории должна из comments к примеру, где будет ячейка avatar или userid пользователя у которого нужно взять аватар.
В твоём случае выборка происходит из таблицы users, а в теории должна из comments к примеру, где будет ячейка avatar или userid пользователя у которого нужно взять аватар.
Спустя 45 минут, 7 секунд (11.03.2010 - 08:54) Nikitian написал(а):
Вывод комментов происходит в опрощённом виде так:
Вам надо связать комменты с аватарами их авторов. Предположу структуру таблиц:
И где выводятся комменты добавляете
$result=mysql_query ("SELECT * FROM comments WHERE cat=$x");
Вам надо связать комменты с аватарами их авторов. Предположу структуру таблиц:
$result=mysql_query ("SELECT comm.*,user.avatar FROM comments as comm left join users as user on (user.id=comm.user_id) WHERE comm.cat=$x");
И где выводятся комменты добавляете
if($myrow["avatar"]!="")printf ("<p><img src='img/avatars/%s' width='70' height='70'/></p>",$myrow["avatar"]);//Условие на случай допуска анонимных комментов.
Спустя 4 часа, 21 минута, 54 секунды (11.03.2010 - 13:16) shmit написал(а):
Спасибо, ребята, попробую что-то сделать, не знаю конечно или получится)
Спустя 10 минут, 4 секунды (11.03.2010 - 13:26) shmit написал(а):
Блин, не догнал, у меня 2 разные таблицы, в первой хранятся комментарии ( comments ) вторая с пользователями ( users ).
Я должен взять с таблицы cоmments id который равняется username.
Но не могу сделать(((
Вот мой код
Я должен взять с таблицы cоmments id который равняется username.
Но не могу сделать(((
Вот мой код
<?php
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <img src='img/pos.gif' width='9' height='12'> <strong>%s</strong><br>Дата: %s</p>
<p class='read2'>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);
}
while ($myrow3 = mysql_fetch_array($result3));
}
?>
Спустя 13 минут, 56 секунд (11.03.2010 - 13:40) DedMorozzz написал(а):
omg, оформляй в теги. Читать не возможно
Спустя 4 минуты, 31 секунда (11.03.2010 - 13:45) shmit написал(а):
Извините
Спустя 6 часов, 46 минут, 6 секунд (11.03.2010 - 20:31) kirik написал(а):
Так и думал - от кода поповщиной несет за метр
$result3, $result4, $result5.. - жесть.
- никогда не используй цикл do-while при вытаскивании результатов запроса
- никогда не вытаскивай все поля (*) если тебе нужны только три
- если работаешь с mysql заключай название полей и таблиц в обратные апострофы
- используй mysql_free_result после выполнения операций над результатом запроса для очиски памяти
- зачем использовать prinf(), когда echo + конкатенация читабелнее и быстрее?
Теперь по поводу аватарок..
У тебя поле author в таблице comments чего содержит?

- никогда не используй цикл do-while при вытаскивании результатов запроса
- никогда не вытаскивай все поля (*) если тебе нужны только три
- если работаешь с mysql заключай название полей и таблиц в обратные апострофы
- используй mysql_free_result после выполнения операций над результатом запроса для очиски памяти
- зачем использовать prinf(), когда echo + конкатенация читабелнее и быстрее?
$result3 = mysql_query ("SELECT `author`, `date`, `text` FROM `comments` WHERE `post` = '{$id}'", $db);
if (mysql_num_rows($result3) > 0)
{
while ($myrow3 = mysql_fetch_assoc($result3))
{
echo '
<div class="post_div">
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
}
}
mysql_free_result($result3);
Теперь по поводу аватарок..
У тебя поле author в таблице comments чего содержит?
Спустя 1 час, 46 минут, 4 секунды (11.03.2010 - 22:17) shmit написал(а):
Там у меня хранятся имена людей которые добавили комментарии, насчёт Попова могу сказать, я купил его диск и для начала мне хватило, в php я совсем новичёк, Вам знатокам виднее , спасибо за совет)
Спустя 30 минут, 46 секунд (11.03.2010 - 22:48) sergeiss написал(а):
shmit - про то, что kirik сказал, более подробно можешь тут почитать: http://phpforum.ru/index.php?showtopic=21916. Тема специально для "жертв поповщины" создана была
Очень рекомендую.

Спустя 6 минут, 33 секунды (11.03.2010 - 22:54) shmit написал(а):
Спасибо, но все же хотелось бы узнать как же аву вывести)
Спустя 7 часов, 5 минут, 36 секунд (12.03.2010 - 06:00) kirik написал(а):
Да, чет упустил тему 
Если у тебя author.comments содержит имя и users.username тоже имя, то можно их сджоинить как предложил Nikitian:
Единственное: author.comments и users.username нужно сделать индексами (users.username можно даже уникальным, если оно такое). А вообще лучше оперировать не текстом а числами - в author.comments записывать не имя пользователя а его id из таблицы users

Если у тебя author.comments содержит имя и users.username тоже имя, то можно их сджоинить как предложил Nikitian:
$query = "SELECT
`c`.`author`,
`c`.`date`,
`c`.`text`,
`u`.`avatar`
FROM `comments` AS `c`
LEFT JOIN `users` AS `u` ON `u`.`username` = `c`.`author`
WHERE `c`.`post` = '{$id}'";
$result3 = mysql_query ($query, $db);
if (mysql_num_rows($result3) > 0)
{
while ($myrow3 = mysql_fetch_assoc($result3))
{
echo '
<div class="post_div">
<p><img src="img/avatars/' . $myrow3['avatar'] . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
}
}
mysql_free_result($result3);
Единственное: author.comments и users.username нужно сделать индексами (users.username можно даже уникальным, если оно такое). А вообще лучше оперировать не текстом а числами - в author.comments записывать не имя пользователя а его id из таблицы users
Спустя 4 минуты, 17 секунд (12.03.2010 - 06:04) kirik написал(а):
И да, вот ресурс специально для новичков - http://irbis-team.com/ от нашего товарища twin'a.
Спустя 8 часов, 18 минут, 35 секунд (12.03.2010 - 14:23) shmit написал(а):
Спасибо, я еще вчера нашел тот сайт, то что нужно)
kirik напиши номер R кошелька, (веб мани ).
kirik напиши номер R кошелька, (веб мани ).
Спустя 8 минут, 21 секунда (12.03.2010 - 14:31) shmit написал(а):
Все работает, еще раз спасибо, конечно для меня код этот вообще не понятен, но буду разбираться

Спустя 21 минута, 50 секунд (12.03.2010 - 14:53) shmit написал(а):
Еще один вопрос, у меня на сайте много комментов, когда еще не было регистрации, и зарегистрированные пользователи не отвечают тем что на сайте, одним словом те комменты что раньше были ( их владельцы ) не числятся в базе зарегистрированных, как мне через оператор их элсо вывести стандартный аватар для них?
Спустя 5 часов, 10 минут, 40 секунд (12.03.2010 - 20:04) kirik написал(а):
shmit
Замени
на
где img/default.jpg - стандартный аватар.
Замени
echo '
<div class="post_div">
<p><img src="img/avatars/' . $myrow3['avatar'] . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
на
echo '
<div class="post_div">
<p><img src="' . (empty($myrow3['avatar']) ? 'img/default.jpg' : 'img/avatars/' . $myrow3['avatar']) . '" width="70" height="70"/></p>
<p class="post_comment_add">Комментарий добавил(а): <img src="img/pos.gif" width="9" height="12"> <strong>' . $myrow3['author'] . '</strong><br>Дата: ' . $myrow3['date'] . '</p>
<p class="read2">' . $myrow3['text'] . '</p>
</div>';
где img/default.jpg - стандартный аватар.
Спустя 2 часа, 29 минут, 30 секунд (12.03.2010 - 22:33) shmit написал(а):
Спасибо! Номер кошелька напиши)
Спустя 3 часа, 56 минут, 16 секунд (13.03.2010 - 02:29) kirik написал(а):
Цитата (shmit @ 12.03.2010 - 14:33) |
Номер кошелька напиши |
Забей

Спустя 3 минуты, 45 секунд (13.03.2010 - 02:33) shmit написал(а):
Как знаешь) Скажи как так можно выучить php как ты? У меня просто мозг кипит, не знаю за что хвататься и как усовершенствовать свои знания, может книг купить?)
Спустя 2 часа, 32 минуты, 50 секунд (13.03.2010 - 05:06) kirik написал(а):
Нормально, вначале всегда так. Просто пока пиши больше и разного. Можешь даже волонтером в какой-нить проект навязаться. Туси на форумах, пробуй отвечать на вопросы совсем новичков (более опытные поправят, если что) - это самое крутое обучение по-моему. Ибо обучая обучаешься
Тут на форуме иногда конкурсы проводятся, тоже очень полезно - напишут о твоих ошибках и, если будут вопросы, можешь всегда спросить.
Самое главное - не спрашивай пока сам не просидишь над решением хотя бы пару дней иначе обленишься совсем
Почаще залазь на php.net - просто броди, смотри функции, пробуй как они работают.
Оно ведь как снежный ком, чем дальше идешь тем больше интересностей появляется.
Удачи!

Самое главное - не спрашивай пока сам не просидишь над решением хотя бы пару дней иначе обленишься совсем

Оно ведь как снежный ком, чем дальше идешь тем больше интересностей появляется.
Удачи!

Спустя 41 минута, 43 секунды (13.03.2010 - 05:48) shmit написал(а):
Спасибо, респект тебе)